3v4l.org

run code in 300+ PHP versions simultaneously
<?php function intvaljunk($string) { $boolSignedNegative = false; $intIntStart = null; $intIntEnd = null; foreach (str_split($string) as $index => $char) { if (is_numeric($char)) { $boolSignedNegative = ( $boolSignedNegative === false && $index > 0 && is_null($intIntStart) && $string[$index - 1] === '-' ? true : $boolSignedNegative ); $intIntStart = is_null($intIntStart) ? $index : $intIntStart; $intIntEnd = is_null($intIntStart) ? $intIntEnd : $index; } else if (!is_null($intIntStart) && !is_null($intIntStart)) { break; } } return ( !is_null($intIntStart) && !is_null($intIntStart) ? intval(($boolSignedNegative ? '-' : '') . substr($string, $intIntStart, ($intIntEnd - $intIntStart) + 1)) : null ); } $signed_number_strings = ["--1", "---33", "+-444"]; foreach ($signed_number_strings as $string) { var_dump(intvaljunk($string)); }
Output for 7.1.0 - 7.1.33, 7.2.0 - 7.2.33, 7.3.0 - 7.3.33, 7.4.0 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.34, 8.2.0 - 8.2.30, 8.3.0 - 8.3.30, 8.4.1 - 8.4.18, 8.5.0 - 8.5.3
int(-1) int(-33) int(-444)

preferences:
106.56 ms | 1613 KiB | 4 Q