3v4l.org

run code in 300+ PHP versions simultaneously
<?php class Foo { private function privateMethod($x) { return $x + 1; } private function publicMethod($x) { return $x + 1; } function testMap() { return array_map(array($this, 'publicMethod'), array(1,2,3)); } function testMyMap() { return my_array_map(array($this, 'publicMethod'), array(1,2,3)); } } function my_array_map($fun, $arr) { $result = array(); foreach ($arr as $k => $v) { $result[$k] = $fun($v); } return $result; } var_dump((new Foo())->testMap()); var_dump((new Foo())->testMyMap());
Output for 8.0.0 - 8.0.30, 8.1.0 - 8.1.27, 8.2.0 - 8.2.17, 8.3.0 - 8.3.4
array(3) { [0]=> int(2) [1]=> int(3) [2]=> int(4) } Fatal error: Uncaught Error: Call to private method Foo::publicMethod() from global scope in /in/OEb3H:26 Stack trace: #0 /in/OEb3H(18): my_array_map(Array, Array) #1 /in/OEb3H(32): Foo->testMyMap() #2 {main} thrown in /in/OEb3H on line 26
Process exited with code 255.
Output for 7.0.0 - 7.0.33, 7.1.0 - 7.1.33, 7.2.0 - 7.2.33, 7.3.0 - 7.3.33, 7.4.0 - 7.4.33
array(3) { [0]=> int(2) [1]=> int(3) [2]=> int(4) } Fatal error: Uncaught Error: Call to private method Foo::publicMethod() from context '' in /in/OEb3H:26 Stack trace: #0 /in/OEb3H(18): my_array_map(Array, Array) #1 /in/OEb3H(32): Foo->testMyMap() #2 {main} thrown in /in/OEb3H on line 26
Process exited with code 255.
Output for 5.6.0 - 5.6.40
array(3) { [0]=> int(2) [1]=> int(3) [2]=> int(4) } Fatal error: Call to private method Foo::publicMethod() from context '' in /in/OEb3H on line 26
Process exited with code 255.

preferences:
229.08 ms | 401 KiB | 287 Q