3v4l.org

run code in 300+ PHP versions simultaneously
<?php /** * Fibonacci number creator. * * @param int $grandparent * @param int $parent * @return int */ function f(int $grandparent, int $parent): int { return intval($parent + $grandparent); } /** * A classical fibonacci range builder. * * @param int $length * @return int[] */ function builder(int $length): array { $grandparent = 0; $parent = 1; $range = [$grandparent, $parent]; for ($i = 0; $i <= $length; $i++) { $child = f($grandparent, $parent); $grandparent = $parent; $parent = $child; $range[] = $child; } return $range; } /** * Generator for fibonacci numbers. * * @param int $length * * @yields int */ function generator(int $length) { $grandparent = 0; $parent = 1; for ($i = 0; $i <= $length; $i++) { yield $child = f($grandparent, $parent); $grandparent = $parent; $parent = $child; } } $maxNumIterations = 999999; for ($numIterations = 0; $numIterations < $maxNumIterations; $numIterations++) { gc_collect_cycles(); $builderUsage = 0; foreach (builder($numIterations) as $fibonacciNumber) { $currentUsage = memory_get_usage(false); if ($currentUsage > $builderUsage) { $builderUsage = $currentUsage; } } gc_collect_cycles(); $generatorUsage = 0; foreach (generator($numIterations) as $fibonacciNumber) { $currentUsage = memory_get_usage(false); if ($currentUsage > $generatorUsage) { $generatorUsage = $currentUsage; } } echo sprintf( "#%d\tBuilder: %.2f kb\tGenerator: %.2f kb\t%d", $numIterations, $builderUsage / 1024, $generatorUsage / 1024, $fibonacciNumber ) . PHP_EOL; if ($builderUsage > $generatorUsage) { echo sprintf( 'Found difference at iteration #%d and fibonacci number %d', $numIterations, $fibonacciNumber ) . PHP_EOL; break; } }
Output for 7.3.0 - 7.3.1
#0 Builder: 383.76 kb Generator: 384.11 kb 1 #1 Builder: 383.79 kb Generator: 384.14 kb 2 #2 Builder: 383.79 kb Generator: 384.14 kb 3 #3 Builder: 383.79 kb Generator: 384.14 kb 5 #4 Builder: 383.79 kb Generator: 384.14 kb 8 #5 Builder: 383.79 kb Generator: 384.14 kb 13 #6 Builder: 384.10 kb Generator: 384.14 kb 21 #7 Builder: 384.10 kb Generator: 384.14 kb 34 #8 Builder: 384.10 kb Generator: 384.14 kb 55 #9 Builder: 384.10 kb Generator: 384.14 kb 89 #10 Builder: 384.10 kb Generator: 384.14 kb 144 #11 Builder: 384.10 kb Generator: 384.14 kb 233 #12 Builder: 384.10 kb Generator: 384.14 kb 377 #13 Builder: 384.10 kb Generator: 384.14 kb 610 #14 Builder: 384.73 kb Generator: 384.14 kb 987 Found difference at iteration #14 and fibonacci number 987
Output for 7.2.0 - 7.2.13
#0 Builder: 380.39 kb Generator: 380.80 kb 1 #1 Builder: 380.42 kb Generator: 380.84 kb 2 #2 Builder: 380.42 kb Generator: 380.84 kb 3 #3 Builder: 380.42 kb Generator: 380.84 kb 5 #4 Builder: 380.42 kb Generator: 380.84 kb 8 #5 Builder: 380.42 kb Generator: 380.84 kb 13 #6 Builder: 380.73 kb Generator: 380.84 kb 21 #7 Builder: 380.73 kb Generator: 380.84 kb 34 #8 Builder: 380.73 kb Generator: 380.84 kb 55 #9 Builder: 380.73 kb Generator: 380.84 kb 89 #10 Builder: 380.73 kb Generator: 380.84 kb 144 #11 Builder: 380.73 kb Generator: 380.84 kb 233 #12 Builder: 380.73 kb Generator: 380.84 kb 377 #13 Builder: 380.73 kb Generator: 380.84 kb 610 #14 Builder: 381.36 kb Generator: 380.84 kb 987 Found difference at iteration #14 and fibonacci number 987
Output for 7.1.0 - 7.1.25
#0 Builder: 344.58 kb Generator: 344.99 kb 1 #1 Builder: 344.61 kb Generator: 345.02 kb 2 #2 Builder: 344.61 kb Generator: 345.02 kb 3 #3 Builder: 344.61 kb Generator: 345.02 kb 5 #4 Builder: 344.61 kb Generator: 345.02 kb 8 #5 Builder: 344.61 kb Generator: 345.02 kb 13 #6 Builder: 344.92 kb Generator: 345.02 kb 21 #7 Builder: 344.92 kb Generator: 345.02 kb 34 #8 Builder: 344.92 kb Generator: 345.02 kb 55 #9 Builder: 344.92 kb Generator: 345.02 kb 89 #10 Builder: 344.92 kb Generator: 345.02 kb 144 #11 Builder: 344.92 kb Generator: 345.02 kb 233 #12 Builder: 344.92 kb Generator: 345.02 kb 377 #13 Builder: 344.92 kb Generator: 345.02 kb 610 #14 Builder: 345.55 kb Generator: 345.02 kb 987 Found difference at iteration #14 and fibonacci number 987
Output for 7.0.0 - 7.0.33
#0 Builder: 344.68 kb Generator: 348.78 kb 1 #1 Builder: 344.71 kb Generator: 348.81 kb 2 #2 Builder: 344.71 kb Generator: 348.81 kb 3 #3 Builder: 344.71 kb Generator: 348.81 kb 5 #4 Builder: 344.71 kb Generator: 348.81 kb 8 #5 Builder: 344.71 kb Generator: 348.81 kb 13 #6 Builder: 345.02 kb Generator: 348.81 kb 21 #7 Builder: 345.02 kb Generator: 348.81 kb 34 #8 Builder: 345.02 kb Generator: 348.81 kb 55 #9 Builder: 345.02 kb Generator: 348.81 kb 89 #10 Builder: 345.02 kb Generator: 348.81 kb 144 #11 Builder: 345.02 kb Generator: 348.81 kb 233 #12 Builder: 345.02 kb Generator: 348.81 kb 377 #13 Builder: 345.02 kb Generator: 348.81 kb 610 #14 Builder: 345.65 kb Generator: 348.81 kb 987 #15 Builder: 345.65 kb Generator: 348.81 kb 1597 #16 Builder: 345.65 kb Generator: 348.81 kb 2584 #17 Builder: 345.65 kb Generator: 348.81 kb 4181 #18 Builder: 345.65 kb Generator: 348.81 kb 6765 #19 Builder: 345.65 kb Generator: 348.81 kb 10946 #20 Builder: 345.65 kb Generator: 348.81 kb 17711 #21 Builder: 345.65 kb Generator: 348.81 kb 28657 #22 Builder: 345.65 kb Generator: 348.81 kb 46368 #23 Builder: 345.65 kb Generator: 348.81 kb 75025 #24 Builder: 345.65 kb Generator: 348.81 kb 121393 #25 Builder: 345.65 kb Generator: 348.81 kb 196418 #26 Builder: 345.65 kb Generator: 348.81 kb 317811 #27 Builder: 345.65 kb Generator: 348.81 kb 514229 #28 Builder: 345.65 kb Generator: 348.81 kb 832040 #29 Builder: 345.65 kb Generator: 348.81 kb 1346269 #30 Builder: 346.90 kb Generator: 348.81 kb 2178309 #31 Builder: 346.90 kb Generator: 348.81 kb 3524578 #32 Builder: 346.90 kb Generator: 348.81 kb 5702887 #33 Builder: 346.90 kb Generator: 348.81 kb 9227465 #34 Builder: 346.90 kb Generator: 348.81 kb 14930352 #35 Builder: 346.90 kb Generator: 348.81 kb 24157817 #36 Builder: 346.90 kb Generator: 348.81 kb 39088169 #37 Builder: 346.90 kb Generator: 348.81 kb 63245986 #38 Builder: 346.90 kb Generator: 348.81 kb 102334155 #39 Builder: 346.90 kb Generator: 348.81 kb 165580141 #40 Builder: 346.90 kb Generator: 348.81 kb 267914296 #41 Builder: 346.90 kb Generator: 348.81 kb 433494437 #42 Builder: 346.90 kb Generator: 348.81 kb 701408733 #43 Builder: 346.90 kb Generator: 348.81 kb 1134903170 #44 Builder: 346.90 kb Generator: 348.81 kb 1836311903 #45 Builder: 346.90 kb Generator: 348.81 kb 2971215073 #46 Builder: 346.90 kb Generator: 348.81 kb 4807526976 #47 Builder: 346.90 kb Generator: 348.81 kb 7778742049 #48 Builder: 346.90 kb Generator: 348.81 kb 12586269025 #49 Builder: 346.90 kb Generator: 348.81 kb 20365011074 #50 Builder: 346.90 kb Generator: 348.81 kb 32951280099 #51 Builder: 346.90 kb Generator: 348.81 kb 53316291173 #52 Builder: 346.90 kb Generator: 348.81 kb 86267571272 #53 Builder: 346.90 kb Generator: 348.81 kb 139583862445 #54 Builder: 346.90 kb Generator: 348.81 kb 225851433717 #55 Builder: 346.90 kb Generator: 348.81 kb 365435296162 #56 Builder: 346.90 kb Generator: 348.81 kb 591286729879 #57 Builder: 346.90 kb Generator: 348.81 kb 956722026041 #58 Builder: 346.90 kb Generator: 348.81 kb 1548008755920 #59 Builder: 346.90 kb Generator: 348.81 kb 2504730781961 #60 Builder: 346.90 kb Generator: 348.81 kb 4052739537881 #61 Builder: 346.90 kb Generator: 348.81 kb 6557470319842 #62 Builder: 352.40 kb Generator: 348.81 kb 10610209857723 Found difference at iteration #62 and fibonacci number 10610209857723
Output for 5.1.0 - 5.1.6, 5.2.0 - 5.2.17, 5.3.0 - 5.3.29, 5.4.0 - 5.4.45, 5.5.0 - 5.5.38, 5.6.0 - 5.6.38
Parse error: syntax error, unexpected ':', expecting '{' in /in/C4IlF on line 9
Process exited with code 255.
Output for 5.0.0 - 5.0.5
Parse error: parse error, unexpected ':', expecting '{' in /in/C4IlF on line 9
Process exited with code 255.
Output for 4.4.2 - 4.4.9
Parse error: syntax error, unexpected T_STRING, expecting ')' in /in/C4IlF on line 9
Process exited with code 255.
Output for 4.3.0 - 4.3.1, 4.3.5 - 4.3.11, 4.4.0 - 4.4.1
Parse error: parse error, unexpected T_STRING, expecting ')' in /in/C4IlF on line 9
Process exited with code 255.
Output for 4.3.2 - 4.3.4
Parse error: parse error, expecting `')'' in /in/C4IlF on line 9
Process exited with code 255.

preferences:
72.27 ms | 423 KiB | 5 Q