3v4l.org

run code in 500+ PHP versions simultaneously
<?php $tests = [ [], // expect null [true, true], // expect true [false, false], // expect false [true, true, false, true], // expect null [false, false, true, false], // expect null ]; foreach ($tests as $bools) { echo "\n"; var_export( (function($bools) { foreach ($bools as $b) { $first ??= $b; if ($first !== $b) { return null; } } return $first ?? null; })($bools) ); }
Output for 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
NULL true false NULL NULL

preferences:
47.03 ms | 971 KiB | 4 Q