3v4l.org

run code in 300+ PHP versions simultaneously
<?php error_reporting(0); if (PHP_VERSION_ID >= 80100) { eval(<<<PHP enum A: string { case A = 'A'; case B = 'B'; } enum B: string { case A = 'A'; case B = 'B'; } PHP); } class Str { public function __toString(): string { return 'A'; } } function vd(string $expr, bool $onlyTrue = false): void { $val = eval('return ' .$expr . ';'); if ($onlyTrue && $val !== true) { return; } echo $expr . ': '; var_dump($val); } $comparisons = [ '"A"', '1', '5', 'B::A', '(object) []', '[]', 'true', 'false', 'null', '(new Str())', ]; if (PHP_VERSION_ID >= 80100) { foreach ($comparisons as $comp) { vd("A::A == {$comp}"); vd("A::A != {$comp}"); vd("{$comp} == A::A"); vd("{$comp} != A::A"); vd("in_array(A::A, [{$comp}])"); vd("in_array({$comp}, [A::A])"); echo "\n"; } } else { $comparisons = array_diff($comparisons, ['B::A']); } foreach ($comparisons as $c1) { foreach ($comparisons as $c2) { if ($c1 === $c2) { continue; } vd("{$c1} == {$c2}", true); vd("in_array({$c1}, [{$c2}])", true); } echo "\n"; }

preferences:
26.28 ms | 406 KiB | 5 Q