3v4l.org

run code in 300+ PHP versions simultaneously
function foo($in = false) {} function test($in) { $start = microtime(true); for ($i = 0; $i < 10000; $i++) { foo(!!$in); } echo ((microtime(true) - $start) / 1000)."\n"; } function test2($in) { $start = microtime(true); for ($i = 0; $i < 10000; $i++) { foo((boolean)$in); } echo ((microtime(true) - $start) / 1000)."\n"; } test($tmp); test2($tmp); echo "\n"; $tmp = false; test($tmp); test2($tmp); echo "\n"; $tmp = '0'; test($tmp); test2($tmp); <?php
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/k4Vbg
function name:  (null)
number of ops:  2
compiled vars:  none
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    1     0  E >   ECHO                                                     'function+foo%28%24in+%3D+false%29+%7B%7D%0Afunction+test%28%24in%29+%7B%0A%09%24start+%3D+microtime%28true%29%3B%0A%09for+%28%24i+%3D+0%3B+%24i+%3C+10000%3B+%24i%2B%2B%29+%7B%0A%09%09foo%28%21%21%24in%29%3B%0A%09%7D%0A%09echo+%28%28microtime%28true%29+-+%24start%29+%2F+1000%29.%22%5Cn%22%3B%0A%7D%0A%0Afunction+test2%28%24in%29+%7B%0A%09%24start+%3D+microtime%28true%29%3B%0A%09for+%28%24i+%3D+0%3B+%24i+%3C+10000%3B+%24i%2B%2B%29+%7B%0A%09%09foo%28%28boolean%29%24in%29%3B%0A%09%7D%0A%09echo+%28%28microtime%28true%29+-+%24start%29+%2F+1000%29.%22%5Cn%22%3B%0A%7D%0A%0Atest%28%24tmp%29%3B%0Atest2%28%24tmp%29%3B%0Aecho+%22%5Cn%22%3B%0A%24tmp+%3D+false%3B%0Atest%28%24tmp%29%3B%0Atest2%28%24tmp%29%3B%0Aecho+%22%5Cn%22%3B%0A%24tmp+%3D+%270%27%3B%0Atest%28%24tmp%29%3B%0Atest2%28%24tmp%29%3B%0A'
   28     1      > RETURN                                                   1

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
154.41 ms | 1392 KiB | 13 Q