3v4l.org

run code in 300+ PHP versions simultaneously
<?php version_compare(PHP_VERSION, '7.1', '>=') || die; class MyClass { public static function callStatic($arg, $i) { return sprintf("%s %d\n", $arg, $i); } public function callable($arg, $i) { return sprintf("%s %d\n", $arg, $i); } public static function getCallable() { return [new static(), 'callable']; } public static function getClosure() { return Closure::fromCallable([new static(), 'callable']); } } function callFunc($arg, $i) { return sprintf("%s %d\n", $arg, $i); } $nTests = 100000; $result = 0; foreach([ 'callable' => MyClass::getCallable(), 'closure ' => MyClass::getClosure(), 'callstat' => ['MyClass', 'callStatic'], 'csclosed' => Closure::fromCallable(['MyClass', 'callStatic']), 'function' => 'callFunc', 'fnclosed' => Closure::fromCallable('callFunc'), ] as $name => $function) { ob_start(); $_start = microtime(true); for($i = 0; $i < $nTests; $i++) { $function('callable', $i); } $_end = microtime(true); ob_end_clean(); $_runtime = $_end - $_start; printf("%s in %.4f sec, %5.1f\n", $name, $_runtime, ($result & 1) * 100 * ($_runtime / ($_old ?? $_runtime))); $_old = $_runtime; $result++; }
Output for 7.4.0
callable in 0.0277 sec, 0.0 closure in 0.0223 sec, 80.7 callstat in 0.0431 sec, 0.0 csclosed in 0.0295 sec, 68.5 function in 0.0264 sec, 0.0 fnclosed in 0.0217 sec, 82.0
Output for 7.3.12
callable in 0.0210 sec, 0.0 closure in 0.0221 sec, 105.1 callstat in 0.0345 sec, 0.0 csclosed in 0.0174 sec, 50.4 function in 0.0217 sec, 0.0 fnclosed in 0.0223 sec, 102.8
Output for 7.3.11
callable in 0.0360 sec, 0.0 closure in 0.0290 sec, 80.6 callstat in 0.0509 sec, 0.0 csclosed in 0.0290 sec, 57.1 function in 0.0375 sec, 0.0 fnclosed in 0.0292 sec, 77.8
Output for 7.3.10
callable in 0.0193 sec, 0.0 closure in 0.0162 sec, 84.0 callstat in 0.0281 sec, 0.0 csclosed in 0.0181 sec, 64.6 function in 0.0369 sec, 0.0 fnclosed in 0.0287 sec, 77.7
Output for 7.3.9
callable in 0.0212 sec, 0.0 closure in 0.0168 sec, 79.4 callstat in 0.0273 sec, 0.0 csclosed in 0.0269 sec, 98.6 function in 0.0381 sec, 0.0 fnclosed in 0.0272 sec, 71.5
Output for 7.3.8
callable in 0.0267 sec, 0.0 closure in 0.0167 sec, 62.6 callstat in 0.0284 sec, 0.0 csclosed in 0.0166 sec, 58.3 function in 0.0216 sec, 0.0 fnclosed in 0.0166 sec, 76.8
Output for 7.3.7
callable in 0.0237 sec, 0.0 closure in 0.0176 sec, 74.1 callstat in 0.0286 sec, 0.0 csclosed in 0.0173 sec, 60.6 function in 0.0229 sec, 0.0 fnclosed in 0.0175 sec, 76.8
Output for 7.3.6
callable in 0.0201 sec, 0.0 closure in 0.0170 sec, 84.9 callstat in 0.0288 sec, 0.0 csclosed in 0.0172 sec, 59.6 function in 0.0219 sec, 0.0 fnclosed in 0.0170 sec, 77.9
Output for 7.3.5
callable in 0.0231 sec, 0.0 closure in 0.0162 sec, 70.0 callstat in 0.0284 sec, 0.0 csclosed in 0.0164 sec, 57.8 function in 0.0211 sec, 0.0 fnclosed in 0.0164 sec, 77.8
Output for 7.3.4
callable in 0.0250 sec, 0.0 closure in 0.0207 sec, 82.7 callstat in 0.0331 sec, 0.0 csclosed in 0.0245 sec, 74.1 function in 0.0381 sec, 0.0 fnclosed in 0.0291 sec, 76.4
Output for 7.3.3
callable in 0.0370 sec, 0.0 closure in 0.0298 sec, 80.6 callstat in 0.0338 sec, 0.0 csclosed in 0.0173 sec, 51.3 function in 0.0218 sec, 0.0 fnclosed in 0.0171 sec, 78.4
Output for 7.3.2
callable in 0.0228 sec, 0.0 closure in 0.0172 sec, 75.3 callstat in 0.0286 sec, 0.0 csclosed in 0.0173 sec, 60.7 function in 0.0219 sec, 0.0 fnclosed in 0.0173 sec, 79.1
Output for 7.3.1
callable in 0.0349 sec, 0.0 closure in 0.0276 sec, 78.9 callstat in 0.0340 sec, 0.0 csclosed in 0.0168 sec, 49.4 function in 0.0213 sec, 0.0 fnclosed in 0.0166 sec, 77.8
Output for 7.3.0
callable in 0.0235 sec, 0.0 closure in 0.0163 sec, 69.4 callstat in 0.0277 sec, 0.0 csclosed in 0.0167 sec, 60.4 function in 0.0212 sec, 0.0 fnclosed in 0.0169 sec, 79.6
Output for 7.2.25
callable in 0.0387 sec, 0.0 closure in 0.0298 sec, 76.9 callstat in 0.0541 sec, 0.0 csclosed in 0.0296 sec, 54.8 function in 0.0393 sec, 0.0 fnclosed in 0.0264 sec, 67.3
Output for 7.2.24
callable in 0.0388 sec, 0.0 closure in 0.0301 sec, 77.7 callstat in 0.0544 sec, 0.0 csclosed in 0.0302 sec, 55.6 function in 0.0398 sec, 0.0 fnclosed in 0.0295 sec, 74.2
Output for 7.2.23
callable in 0.0248 sec, 0.0 closure in 0.0199 sec, 80.3 callstat in 0.0347 sec, 0.0 csclosed in 0.0198 sec, 57.0 function in 0.0261 sec, 0.0 fnclosed in 0.0200 sec, 76.6
Output for 7.2.22
callable in 0.0372 sec, 0.0 closure in 0.0276 sec, 74.2 callstat in 0.0303 sec, 0.0 csclosed in 0.0181 sec, 59.7 function in 0.0231 sec, 0.0 fnclosed in 0.0180 sec, 77.9
Output for 7.2.21
callable in 0.0373 sec, 0.0 closure in 0.0181 sec, 48.6 callstat in 0.0310 sec, 0.0 csclosed in 0.0183 sec, 59.0 function in 0.0235 sec, 0.0 fnclosed in 0.0182 sec, 77.4
Output for 7.2.20
callable in 0.0234 sec, 0.0 closure in 0.0168 sec, 71.9 callstat in 0.0307 sec, 0.0 csclosed in 0.0171 sec, 55.7 function in 0.0320 sec, 0.0 fnclosed in 0.0301 sec, 94.1
Output for 7.2.19
callable in 0.0382 sec, 0.0 closure in 0.0204 sec, 53.4 callstat in 0.0324 sec, 0.0 csclosed in 0.0176 sec, 54.4 function in 0.0231 sec, 0.0 fnclosed in 0.0174 sec, 75.0
Output for 7.2.18
callable in 0.0239 sec, 0.0 closure in 0.0170 sec, 71.3 callstat in 0.0306 sec, 0.0 csclosed in 0.0169 sec, 55.2 function in 0.0307 sec, 0.0 fnclosed in 0.0296 sec, 96.4
Output for 7.2.17
callable in 0.0374 sec, 0.0 closure in 0.0235 sec, 62.9 callstat in 0.0495 sec, 0.0 csclosed in 0.0183 sec, 37.0 function in 0.0234 sec, 0.0 fnclosed in 0.0184 sec, 78.8
Output for 7.1.33
callable in 0.0487 sec, 0.0 closure in 0.0307 sec, 63.1 callstat in 0.0526 sec, 0.0 csclosed in 0.0300 sec, 57.0 function in 0.0366 sec, 0.0 fnclosed in 0.0296 sec, 81.0
Output for 7.1.32
callable in 0.0488 sec, 0.0 closure in 0.0334 sec, 68.4 callstat in 0.0421 sec, 0.0 csclosed in 0.0277 sec, 65.9 function in 0.0362 sec, 0.0 fnclosed in 0.0400 sec, 110.5
Output for 7.1.31
callable in 0.0349 sec, 0.0 closure in 0.0296 sec, 84.8 callstat in 0.0461 sec, 0.0 csclosed in 0.0290 sec, 62.9 function in 0.0344 sec, 0.0 fnclosed in 0.0288 sec, 83.6
Output for 7.1.30
callable in 0.0346 sec, 0.0 closure in 0.0285 sec, 82.4 callstat in 0.0421 sec, 0.0 csclosed in 0.0282 sec, 66.9 function in 0.0338 sec, 0.0 fnclosed in 0.0281 sec, 83.2
Output for 7.1.29
callable in 0.0358 sec, 0.0 closure in 0.0294 sec, 82.0 callstat in 0.0440 sec, 0.0 csclosed in 0.0297 sec, 67.4 function in 0.0349 sec, 0.0 fnclosed in 0.0289 sec, 82.7
Output for 7.1.28
callable in 0.0366 sec, 0.0 closure in 0.0301 sec, 82.0 callstat in 0.0424 sec, 0.0 csclosed in 0.0284 sec, 66.9 function in 0.0332 sec, 0.0 fnclosed in 0.0269 sec, 81.3
Output for 7.1.27
callable in 0.0438 sec, 0.0 closure in 0.0278 sec, 63.5 callstat in 0.0446 sec, 0.0 csclosed in 0.0397 sec, 88.9 function in 0.0519 sec, 0.0 fnclosed in 0.0325 sec, 62.5
Output for 7.1.26
callable in 0.0319 sec, 0.0 closure in 0.0280 sec, 87.5 callstat in 0.0425 sec, 0.0 csclosed in 0.0275 sec, 64.8 function in 0.0337 sec, 0.0 fnclosed in 0.0275 sec, 81.5
Output for 7.1.7
callable in 0.0194 sec, 0.0 closure in 0.0132 sec, 68.0 callstat in 0.0325 sec, 0.0 csclosed in 0.0198 sec, 61.0 function in 0.0159 sec, 0.0 fnclosed in 0.0115 sec, 71.9
Output for 7.1.6
callable in 0.0268 sec, 0.0 closure in 0.0194 sec, 72.4 callstat in 0.0316 sec, 0.0 csclosed in 0.0213 sec, 67.3 function in 0.0343 sec, 0.0 fnclosed in 0.0318 sec, 92.9
Output for 7.1.5
callable in 0.0249 sec, 0.0 closure in 0.0215 sec, 86.4 callstat in 0.0308 sec, 0.0 csclosed in 0.0191 sec, 62.1 function in 0.0281 sec, 0.0 fnclosed in 0.0180 sec, 64.1
Output for 7.1.4
callable in 0.0296 sec, 0.0 closure in 0.0235 sec, 79.6 callstat in 0.0307 sec, 0.0 csclosed in 0.0208 sec, 67.6 function in 0.0220 sec, 0.0 fnclosed in 0.0211 sec, 95.8
Output for 7.1.3
callable in 0.0267 sec, 0.0 closure in 0.0162 sec, 60.7 callstat in 0.0281 sec, 0.0 csclosed in 0.0162 sec, 57.8 function in 0.0238 sec, 0.0 fnclosed in 0.0172 sec, 72.2
Output for 7.1.2
callable in 0.0394 sec, 0.0 closure in 0.0328 sec, 83.3 callstat in 0.0575 sec, 0.0 csclosed in 0.0274 sec, 47.7 function in 0.0221 sec, 0.0 fnclosed in 0.0164 sec, 74.4
Output for 7.1.1
callable in 0.0376 sec, 0.0 closure in 0.0193 sec, 51.4 callstat in 0.0346 sec, 0.0 csclosed in 0.0183 sec, 52.9 function in 0.0242 sec, 0.0 fnclosed in 0.0175 sec, 72.1
Output for 7.1.0
callable in 0.0219 sec, 0.0 closure in 0.0176 sec, 80.3 callstat in 0.0300 sec, 0.0 csclosed in 0.0169 sec, 56.2 function in 0.0221 sec, 0.0 fnclosed in 0.0234 sec, 105.8
Output for 7.0.0 - 7.0.20

preferences:
101.46 ms | 401 KiB | 65 Q