3v4l.org

run code in 300+ PHP versions simultaneously
<?php // A unit testing framework in a tweet. https://gist.github.com/mathiasverraes/9046427 function it($m,$p){echo ($p?'✔︎':'✘')." It $m\n"; if(!$p){$GLOBALS['f']=1;}}function done(){if(@$GLOBALS['f'])die(1);} function consistsOfTheSameValues(array $a, array $b) { sort($a); sort($b); return $a === $b; } it("consistsOfTheSameValues([1], [1])", consistsOfTheSameValues([1], [1]) === true ); it("consistsOfTheSameValues([1, 1], [1, 1])", consistsOfTheSameValues([1, 1], [1, 1]) === true ); it("consistsOfTheSameValues(['1', 1], ['1', 1])", consistsOfTheSameValues(['1', 1], ['1', 1]) === true ); it("consistsOfTheSameValues(['1', 1], [1, '1'])", consistsOfTheSameValues(['1', 1], [1, '1']) === true ); it("consistsOfTheSameValues([1, '1'], ['1', 1])", consistsOfTheSameValues([1, '1'], ['1', 1]) === true ); it("consistsOfTheSameValues([1, '1'], [1, '1'])", consistsOfTheSameValues([1, '1'], [1, '1']) === true ); it("consistsOfTheSameValues(['x' => 1], ['x' => 1])", consistsOfTheSameValues(['x' => 1], ['x' => 1]) === true ); it("consistsOfTheSameValues(['x' => 1], ['y' => 1])", consistsOfTheSameValues(['x' => 1], ['y' => 1]) === true ); it("consistsOfTheSameValues(['y' => 1], ['x' => 1])", consistsOfTheSameValues(['y' => 1], ['x' => 1]) === true ); it("consistsOfTheSameValues(['x' => 1, 'y' => 1], ['x' => 1, 'y' => 1])", consistsOfTheSameValues(['x' => 1, 'y' => 1], ['x' => 1, 'y' => 1]) === true ); it("consistsOfTheSameValues(['y' => 1, 'x' => 1], ['x' => 1, 'y' => 1])", consistsOfTheSameValues(['y' => 1, 'x' => 1], ['x' => 1, 'y' => 1]) === true ); it("consistsOfTheSameValues(['x' => 1, 'y' => 1], ['y' => 1, 'x' => 1])", consistsOfTheSameValues(['x' => 1, 'y' => 1], ['y' => 1, 'x' => 1]) === true ); it("consistsOfTheSameValues(['y' => 1, 'x' => 1], ['y' => 1, 'x' => 1])", consistsOfTheSameValues(['y' => 1, 'x' => 1], ['y' => 1, 'x' => 1]) === true ); it("consistsOfTheSameValues(['x' => 2, 'y' => 1], ['x' => 1, 'y' => 2])", consistsOfTheSameValues(['x' => 2, 'y' => 1], ['x' => 1, 'y' => 2]) === true ); it("does not consistsOfTheSameValues([1], [2])", consistsOfTheSameValues([1], [2]) === false ); it("does not consistsOfTheSameValues(['1'], [1])", consistsOfTheSameValues(['1'], [1]) === false ); it("does not consistsOfTheSameValues([1], ['1'])", consistsOfTheSameValues([1], ['1']) === false ); it("does not consistsOfTheSameValues([1], [1, 1])", consistsOfTheSameValues([1], [1, 1]) === false ); it("does not consistsOfTheSameValues([1, 1], [1])", consistsOfTheSameValues([1, 1], [1]) === false ); it("does not consistsOfTheSameValues(['1', 1], [1, 1])", consistsOfTheSameValues(['1', 1], [1, 1]) === false ); it("does not consistsOfTheSameValues([1, '1'], [1, 1])", consistsOfTheSameValues([1, '1'], [1, 1]) === false ); it("does not consistsOfTheSameValues([1, 1], ['1', 1])", consistsOfTheSameValues([1, 1], ['1', 1]) === false ); it("does not consistsOfTheSameValues([1, 1], [1, '1'])", consistsOfTheSameValues([1, 1], [1, '1']) === false ); it("does not consistsOfTheSameValues(['1', '1'], [1, 1])", consistsOfTheSameValues(['1', '1'], [1, 1]) === false ); it("does not consistsOfTheSameValues(['1', '1'], ['1', 1])", consistsOfTheSameValues(['1', '1'], ['1', 1]) === false ); it("does not consistsOfTheSameValues(['1', '1'], [1, '1'])", consistsOfTheSameValues(['1', '1'], [1, '1']) === false ); it("does not consistsOfTheSameValues([1, 1], ['1', '1'])", consistsOfTheSameValues([1, 1], ['1', '1']) === false ); it("does not consistsOfTheSameValues(['1', 1], ['1', '1'])", consistsOfTheSameValues(['1', 1], ['1', '1']) === false ); it("does not consistsOfTheSameValues([1, '1'], ['1', '1'])", consistsOfTheSameValues([1, '1'], ['1', '1']) === false ); it("does not consistsOfTheSameValues(['x' => 1], ['x' => 2])", consistsOfTheSameValues(['x' => 1], ['x' => 2]) === false ); it("does not consistsOfTheSameValues(['x' => 1, 'y' => 1], ['x' => 1, 'y' => 2])", consistsOfTheSameValues(['x' => 1, 'y' => 1], ['x' => 1, 'y' => 2]) === false ); it("does not consistsOfTheSameValues(['x' => 1, 'y' => 1], ['x' => 2, 'y' => 1])", consistsOfTheSameValues(['x' => 1, 'y' => 1], ['x' => 2, 'y' => 1]) === false ); it("does not consistsOfTheSameValues(['x' => 2, 'y' => 1], ['x' => 1, 'y' => 1])", consistsOfTheSameValues(['x' => 2, 'y' => 1], ['x' => 1, 'y' => 1]) === false );
Output for 5.6.0 - 5.6.40, 7.0.0 - 7.0.33, 7.1.0 - 7.1.33, 7.2.0 - 7.2.34, 7.3.0 - 7.3.33, 7.4.0 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.33, 8.2.0 - 8.2.29, 8.3.0 - 8.3.25, 8.4.1 - 8.4.12
✔︎ It consistsOfTheSameValues([1], [1]) ✔︎ It consistsOfTheSameValues([1, 1], [1, 1]) ✔︎ It consistsOfTheSameValues(['1', 1], ['1', 1]) ✘ It consistsOfTheSameValues(['1', 1], [1, '1']) ✘ It consistsOfTheSameValues([1, '1'], ['1', 1]) ✔︎ It consistsOfTheSameValues([1, '1'], [1, '1']) ✔︎ It consistsOfTheSameValues(['x' => 1], ['x' => 1]) ✔︎ It consistsOfTheSameValues(['x' => 1], ['y' => 1]) ✔︎ It consistsOfTheSameValues(['y' => 1], ['x' => 1]) ✔︎ It consistsOfTheSameValues(['x' => 1, 'y' => 1], ['x' => 1, 'y' => 1]) ✔︎ It consistsOfTheSameValues(['y' => 1, 'x' => 1], ['x' => 1, 'y' => 1]) ✔︎ It consistsOfTheSameValues(['x' => 1, 'y' => 1], ['y' => 1, 'x' => 1]) ✔︎ It consistsOfTheSameValues(['y' => 1, 'x' => 1], ['y' => 1, 'x' => 1]) ✔︎ It consistsOfTheSameValues(['x' => 2, 'y' => 1], ['x' => 1, 'y' => 2]) ✔︎ It does not consistsOfTheSameValues([1], [2]) ✔︎ It does not consistsOfTheSameValues(['1'], [1]) ✔︎ It does not consistsOfTheSameValues([1], ['1']) ✔︎ It does not consistsOfTheSameValues([1], [1, 1]) ✔︎ It does not consistsOfTheSameValues([1, 1], [1]) ✔︎ It does not consistsOfTheSameValues(['1', 1], [1, 1]) ✔︎ It does not consistsOfTheSameValues([1, '1'], [1, 1]) ✔︎ It does not consistsOfTheSameValues([1, 1], ['1', 1]) ✔︎ It does not consistsOfTheSameValues([1, 1], [1, '1']) ✔︎ It does not consistsOfTheSameValues(['1', '1'], [1, 1]) ✔︎ It does not consistsOfTheSameValues(['1', '1'], ['1', 1]) ✔︎ It does not consistsOfTheSameValues(['1', '1'], [1, '1']) ✔︎ It does not consistsOfTheSameValues([1, 1], ['1', '1']) ✔︎ It does not consistsOfTheSameValues(['1', 1], ['1', '1']) ✔︎ It does not consistsOfTheSameValues([1, '1'], ['1', '1']) ✔︎ It does not consistsOfTheSameValues(['x' => 1], ['x' => 2]) ✔︎ It does not consistsOfTheSameValues(['x' => 1, 'y' => 1], ['x' => 1, 'y' => 2]) ✔︎ It does not consistsOfTheSameValues(['x' => 1, 'y' => 1], ['x' => 2, 'y' => 1]) ✔︎ It does not consistsOfTheSameValues(['x' => 2, 'y' => 1], ['x' => 1, 'y' => 1])

preferences:
154.87 ms | 418 KiB | 5 Q