3v4l.org

run code in 300+ PHP versions simultaneously
<?php class A { public $a; public $b; private $c; protected static $columnRegistry = array(); protected $columns = array(); public function __construct($a, $b, $c) { $this->a = $a; $this->b = $b; $this->c = $c; $this->setupColumns(); } public function toArray() { $ret = []; foreach ($this->columns as $column) { $ret[$column] = $this->$column; } return $ret; } protected function setupColumns() { $class = get_class($this); // Define columns for current row if (!array_key_exists($class, self::$columnRegistry)) { foreach ((new ReflectionClass($this))->getProperties(ReflectionProperty::IS_PUBLIC) as $property) { if (!$property->isStatic()) { $this->columns[] = $property->getName(); } } self::$columnRegistry[$class] = $this->columns; } else { $this->columns = self::$columnRegistry[$class]; } } } $expected = [ 'a' => 1, 'b' => 2, ]; $numReps = 100000; $start = microtime(true); for($i = 0; $i < $numReps; $i++) { $o = new A(1, 2, 3); $res = $o->toArray(); if ($res !== $expected) { throw new Exception("Not same"); } } $end = microtime(true); $mem = memory_get_peak_usage(true); echo number_format($end-$start, 8) . "\t$mem\n";
Output for 7.4.1
0.09897614 2097152
Output for 7.4.0
0.06861210 2097152
Output for 7.3.13
0.07186103 2097152
Output for 7.3.12
0.10699701 2097152
Output for 7.3.11
0.06838393 2097152
Output for 7.3.10
0.08526587 2097152
Output for 7.3.9
0.09349108 2097152
Output for 7.3.8
0.06693721 2097152
Output for 7.3.7
0.07306099 2097152
Output for 7.3.6
0.07193899 2097152
Output for 7.3.5
0.07631397 2097152
Output for 7.3.4
0.07293010 2097152
Output for 7.3.3
0.07699704 2097152
Output for 7.3.2
0.08076906 2097152
Output for 7.3.1
0.07058597 2097152
Output for 7.3.0
0.09456396 2097152
Output for 7.2.26
0.11272192 2097152
Output for 7.2.25
0.11476398 2097152
Output for 7.2.24
0.07491302 2097152
Output for 7.2.23
0.10236907 2097152
Output for 7.2.22
0.07600594 2097152
Output for 7.2.21
0.07722187 2097152
Output for 7.2.20
0.08124113 2097152
Output for 7.2.19
0.08636308 2097152
Output for 7.2.18
0.07540512 2097152
Output for 7.2.17
0.11187315 2097152
Output for 7.2.16
0.08117485 2097152
Output for 7.2.15
0.07919598 2097152
Output for 7.2.14
0.07585597 2097152
Output for 7.2.13
0.07755399 2097152
Output for 7.2.12
0.09146905 2097152
Output for 7.2.11
0.07560897 2097152
Output for 7.2.10
0.07475305 2097152
Output for 7.2.9
0.08485389 2097152
Output for 7.2.8
0.09532094 2097152
Output for 7.2.7
0.07813311 2097152
Output for 7.2.6
0.08406210 2097152
Output for 7.2.5
0.07704616 2097152
Output for 7.2.4
0.09733915 2097152
Output for 7.2.3
0.07550597 2097152
Output for 7.2.2
0.11293602 2097152
Output for 7.2.1
0.08059287 2097152
Output for 7.2.0
0.07800102 2097152
Output for 7.1.33
0.13570881 2097152
Output for 7.1.32
0.13423705 2097152
Output for 7.1.31
0.11528587 2097152
Output for 7.1.30
0.12889504 2097152
Output for 7.1.29
0.11531997 2097152
Output for 7.1.28
0.16817403 2097152
Output for 7.1.27
0.11541915 2097152
Output for 7.1.26
0.13328290 2097152
Output for 7.1.25
0.11785102 2097152
Output for 7.1.24
0.12702107 2097152
Output for 7.1.23
0.11671782 2097152
Output for 7.1.22
0.13095307 2097152
Output for 7.1.21
0.12080979 2097152
Output for 7.1.20
0.14858389 2097152
Output for 7.1.19
0.11863613 2097152
Output for 7.1.18
0.12989616 2097152
Output for 7.1.17
0.11515713 2097152
Output for 7.1.16
0.12875605 2097152
Output for 7.1.15
0.11845303 2097152
Output for 7.1.14
0.11823893 2097152
Output for 7.1.13
0.15517998 2097152
Output for 7.1.12
0.15801215 2097152
Output for 7.1.11
0.17028189 2097152
Output for 7.1.10
0.13943815 2097152
Output for 7.1.9
0.13365197 2097152
Output for 7.1.8
0.11990786 2097152
Output for 7.1.7
0.13304591 2097152
Output for 7.1.6
0.15284610 2097152
Output for 7.1.5
0.13211608 2097152
Output for 7.1.4
0.14590597 2097152
Output for 7.1.3
0.11260915 2097152
Output for 7.1.2
0.13983512 2097152
Output for 7.1.1
0.16064405 2097152
Output for 7.1.0
0.12645602 2097152
Output for 7.0.33
0.11718583 2097152
Output for 7.0.32
0.12860298 2097152
Output for 7.0.31
0.12842202 2097152
Output for 7.0.30
0.12495112 2097152
Output for 7.0.29
0.16799021 2097152
Output for 7.0.28
0.16187787 2097152
Output for 7.0.27
0.12190390 2097152
Output for 7.0.26
0.16647601 2097152
Output for 7.0.25
0.12901711 2097152
Output for 7.0.24
0.11429620 2097152
Output for 7.0.23
0.11781693 2097152
Output for 7.0.22
0.12682080 2097152
Output for 7.0.21
0.11867905 2097152
Output for 7.0.20
0.11506081 2097152
Output for 7.0.19
0.11724210 2097152
Output for 7.0.18
0.12885094 2097152
Output for 7.0.17
0.16468096 2097152
Output for 7.0.16
0.14078617 2097152
Output for 7.0.15
0.14240098 2097152
Output for 7.0.14
0.17235613 2097152
Output for 7.0.13
0.11807299 2097152
Output for 7.0.12
0.13393188 2097152
Output for 7.0.11
0.13745880 2097152
Output for 7.0.10
0.13949203 2097152
Output for 7.0.9
0.13464499 2097152
Output for 7.0.8
0.16016412 2097152
Output for 7.0.7
0.14376116 2097152
Output for 7.0.6
0.13015890 2097152
Output for 7.0.5
0.11624408 2097152
Output for 7.0.4
0.16823506 2097152
Output for 7.0.3
0.16876984 2097152
Output for 7.0.2
0.16064501 2097152
Output for 7.0.1
0.13183808 2097152
Output for 7.0.0
0.12347102 2097152
Output for 5.6.40
0.29543900 262144
Output for 5.6.39
0.40289688 262144
Output for 5.6.38
0.33731318 262144
Output for 5.6.37
0.26007700 262144
Output for 5.6.36
0.36739516 262144
Output for 5.6.35
0.23971105 262144
Output for 5.6.34
0.28926015 262144
Output for 5.6.33
0.30427694 262144
Output for 5.6.32
0.27500200 262144
Output for 5.6.31
0.25081205 262144
Output for 5.6.30
0.27861619 262144
Output for 5.6.29
0.26650310 262144
Output for 5.6.28
0.25064898 262144
Output for 5.6.27
0.29151201 262144
Output for 5.6.26
0.25623918 262144
Output for 5.6.25
0.34142995 262144
Output for 5.6.24
0.28113794 262144
Output for 5.6.23
0.23527718 262144
Output for 5.6.22
0.23646188 262144
Output for 5.6.21
0.24873686 262144
Output for 5.6.20
0.30858111 262144
Output for 5.6.19
0.30842996 262144
Output for 5.6.18
0.26561594 262144
Output for 5.6.17
0.27563405 262144
Output for 5.6.16
0.26376486 262144
Output for 5.6.15
0.32690907 262144
Output for 5.6.14
0.32561612 262144
Output for 5.6.13
0.24560595 262144
Output for 5.6.12
0.27944207 262144
Output for 5.6.11
0.33093905 262144
Output for 5.6.10
0.33327508 262144
Output for 5.6.9
0.30154395 262144
Output for 5.6.8
0.32178903 262144
Output for 5.6.7
0.31033301 262144
Output for 5.6.6
0.24102807 262144
Output for 5.6.5
0.28687501 262144
Output for 5.6.4
0.25210619 262144
Output for 5.6.3
0.35804701 262144
Output for 5.6.2
0.40405893 262144
Output for 5.6.1
0.45504498 262144
Output for 5.6.0
0.29073000 262144
Output for 5.5.38
0.27851295 262144
Output for 5.5.37
0.23925495 262144
Output for 5.5.36
0.27871799 262144
Output for 5.5.35
0.27297497 262144
Output for 5.5.34
0.24782801 262144
Output for 5.5.33
0.24496794 262144
Output for 5.5.32
0.24934983 262144
Output for 5.5.31
0.24047112 262144
Output for 5.5.30
0.28020501 262144
Output for 5.5.29
0.31020999 262144
Output for 5.5.28
0.25025988 262144
Output for 5.5.27
0.29008603 262144
Output for 5.5.26
0.33056402 262144
Output for 5.5.25
0.27550483 262144
Output for 5.5.24
0.30599904 262144
Output for 5.5.23
0.28319693 262144
Output for 5.5.22
0.32124400 262144
Output for 5.5.21
0.26608682 262144
Output for 5.5.20
0.33945489 262144
Output for 5.5.19
0.31307697 262144
Output for 5.5.18
0.38544106 262144
Output for 5.5.17
0.37521696 262144
Output for 5.5.16
0.29034901 262144
Output for 5.5.15
0.29628682 262144
Output for 5.5.14
0.24124312 262144
Output for 5.5.13
0.27107501 262144
Output for 5.5.12
0.27395701 262144
Output for 5.5.11
0.34098601 262144
Output for 5.5.10
0.27614212 262144
Output for 5.5.9
0.26495814 262144
Output for 5.5.8
0.29511404 262144
Output for 5.5.7
0.24560118 262144
Output for 5.5.6
0.28581190 262144
Output for 5.5.5
0.29020619 262144
Output for 5.5.4
0.26946092 262144
Output for 5.5.3
0.24486589 262144
Output for 5.5.2
0.34941912 262144
Output for 5.5.1
0.26876211 262144
Output for 5.5.0
0.24391294 262144
Output for 5.4.45
0.25428414 262144
Output for 5.4.44
0.27695799 262144
Output for 5.4.43
0.27693200 262144
Output for 5.4.42
0.32474804 262144
Output for 5.4.41
0.24167490 262144
Output for 5.4.40
0.35163021 262144
Output for 5.4.39
0.29757404 262144
Output for 5.4.38
0.25968289 262144
Output for 5.4.37
0.30865502 262144
Output for 5.4.36
0.35129499 262144
Output for 5.4.35
0.35203695 262144
Output for 5.4.34
0.38519597 262144
Output for 5.4.33
0.35729003 262144
Output for 5.4.32
0.28728485 262144
Output for 5.4.31
0.25182915 262144
Output for 5.4.30
0.27059793 262144
Output for 5.4.29
0.25888300 262144
Output for 5.4.28
0.27808785 262144
Output for 5.4.27
0.34671092 262144
Output for 5.4.26
0.29767013 262144
Output for 5.4.25
0.24466705 262144
Output for 5.4.24
0.28083086 262144
Output for 5.4.23
0.30527806 262144
Output for 5.4.22
0.27573085 262144
Output for 5.4.21
0.25344706 262144
Output for 5.4.20
0.27879214 262144
Output for 5.4.19
0.28093505 262144
Output for 5.4.18
0.34963417 262144
Output for 5.4.17
0.30813718 262144
Output for 5.4.16
0.28275704 262144
Output for 5.4.15
0.29866695 262144
Output for 5.4.14
0.32974815 262144
Output for 5.4.13
0.25651217 262144
Output for 5.4.12
0.25773287 262144
Output for 5.4.11
0.35862398 262144
Output for 5.4.10
0.34425902 262144
Output for 5.4.9
0.31306410 262144
Output for 5.4.8
0.24582291 262144
Output for 5.4.7
0.30385900 262144
Output for 5.4.6
0.25178194 262144
Output for 5.4.5
0.24249792 262144
Output for 5.4.4
0.26329708 262144
Output for 5.4.3
0.28444314 262144
Output for 5.4.2
0.26737499 262144
Output for 5.4.1
0.24314499 262144
Output for 5.4.0
0.27676988 262144
Output for 5.1.0 - 5.1.6, 5.2.0 - 5.2.17, 5.3.0 - 5.3.29
Parse error: syntax error, unexpected '[' in /in/IA37E on line 19
Process exited with code 255.
Output for 5.0.0 - 5.0.5
Parse error: parse error, unexpected '[' in /in/IA37E on line 19
Process exited with code 255.
Output for 4.4.2 - 4.4.9
Parse error: syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /in/IA37E on line 4
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 T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /in/IA37E on line 4
Process exited with code 255.
Output for 4.3.2 - 4.3.4
Parse error: parse error, expecting `T_OLD_FUNCTION' or `T_FUNCTION' or `T_VAR' or `'}'' in /in/IA37E on line 4
Process exited with code 255.

preferences:
222.23 ms | 401 KiB | 325 Q