3v4l.org

run code in 500+ PHP versions simultaneously
<?php foreach ([ [0, 'a', 'a'], // from https://wiki.php.net/rfc/string_to_number_comparison [0, 0, '0'], [0, 0, '0.0'], [-1, 0, 'foo'], [1, 0, ''], [0, 42, ' 42'], [-1, 42, '42foo'], [0, '0', '0'], [0, '0', '0.0'], [-1, '0', 'foo'], [1, '0', ''], [0, '42', ' 42'], [-1, '42', '42foo'], [0, 42, '000042'], [0, 42, '42.0'], [0, 42.0, '+42.0E0'], [0, 0, '0e214987142012'], [0, '42', '000042'], [0, '42', '42.0'], [0, '42.0', '+42.0E0'], [0, '0', '0e214987142012'], [0, 42, ' 42'], [0, 42, '42 '], [-1, 42, '42abc'], [-1, 42, 'abc42'], [-1, 0, 'abc42'], [0, INF, 'INF'], [0, -INF, '-INF'], [0, INF, '1e1000'], [0, -INF, '-1e1000'], [-1, 10, 20], [-1, '10', 20], [-1, 10, '20'], ] as [$expected, $a, $b]) { $actual = $a <=> $b; if ($expected !== $actual) { echo var_export($a, true).' <=> '.var_export($b, true), PHP_EOL; echo 'Expected: '.var_export($expected, true), PHP_EOL; echo 'Actual: '.var_export($actual, true), PHP_EOL; echo PHP_EOL; } } echo 'Done.', PHP_EOL;

preferences:
44.33 ms | 1542 KiB | 5 Q