3v4l.org

run code in 500+ PHP versions simultaneously
<?php function twig_compare($a, $b) { // int <=> string if (\is_int($a) && \is_string($b)) { $b = trim($b); if (!is_numeric($b)) { return (string) $a <=> $b; } if ((int) $b == $b) { return $a <=> (int) $b; } else { return (float) $a <=> (float) $b; } } throw new \LogicException('partial implementation for quick test'); } $failures = []; foreach ([ [1, 42, ' foo'], [0, 42, "42\f"], [1, 42, "\x00\x34\x32"], ] as [$expected, $a, $b]) { $actual = twig_compare($a, $b); if ($expected === $actual) { echo '.'; } else { echo 'F'; $failures[] = [$a, $b, $expected, $actual]; } } echo "\n"; if (!$failures) { echo "OK\n"; } else { echo count($failures)." test(s) failed:\n"; foreach ($failures as [$a, $b, $expected, $actual]) { echo '('.var_export($a, true).', '.var_export($b, true)."): expected $expected, actual $actual\n"; } }

preferences:
44.95 ms | 1541 KiB | 5 Q