3v4l.org

run code in 300+ PHP versions simultaneously
<?php class Foo { public function PublicMethod() {} private function PrivateMethod() {} public static function PublicStaticMethod() {} private static function PrivateStaticMethod() {} } $foo = new Foo(); $callbacks = array( array($foo, 'PublicMethod'), array($foo, 'PrivateMethod'), array($foo, 'PublicStaticMethod'), array($foo, 'PrivateStaticMethod'), array('Foo', 'PublicMethod'), array('Foo', 'PrivateMethod'), array('Foo', 'PublicStaticMethod'), array('Foo', 'PrivateStaticMethod'), ); foreach ($callbacks as $callback) { var_dump($callback); var_dump(method_exists($callback[0], $callback[1])); // 0: object / class name, 1: method name var_dump(is_callable($callback)); echo str_repeat('-', 40), "\n"; }
Output for 8.0.0 - 8.0.30, 8.1.0 - 8.1.28, 8.2.0 - 8.2.18, 8.3.0 - 8.3.6
array(2) { [0]=> object(Foo)#1 (0) { } [1]=> string(12) "PublicMethod" } bool(true) bool(true) ---------------------------------------- array(2) { [0]=> object(Foo)#1 (0) { } [1]=> string(13) "PrivateMethod" } bool(true) bool(false) ---------------------------------------- array(2) { [0]=> object(Foo)#1 (0) { } [1]=> string(18) "PublicStaticMethod" } bool(true) bool(true) ---------------------------------------- array(2) { [0]=> object(Foo)#1 (0) { } [1]=> string(19) "PrivateStaticMethod" } bool(true) bool(false) ---------------------------------------- array(2) { [0]=> string(3) "Foo" [1]=> string(12) "PublicMethod" } bool(true) bool(false) ---------------------------------------- array(2) { [0]=> string(3) "Foo" [1]=> string(13) "PrivateMethod" } bool(true) bool(false) ---------------------------------------- array(2) { [0]=> string(3) "Foo" [1]=> string(18) "PublicStaticMethod" } bool(true) bool(true) ---------------------------------------- array(2) { [0]=> string(3) "Foo" [1]=> string(19) "PrivateStaticMethod" } bool(true) bool(false) ----------------------------------------
Output for 5.3.0 - 5.3.29, 5.4.0 - 5.4.45, 5.5.0 - 5.5.38, 5.6.0 - 5.6.40, 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(2) { [0]=> object(Foo)#1 (0) { } [1]=> string(12) "PublicMethod" } bool(true) bool(true) ---------------------------------------- array(2) { [0]=> object(Foo)#1 (0) { } [1]=> string(13) "PrivateMethod" } bool(true) bool(false) ---------------------------------------- array(2) { [0]=> object(Foo)#1 (0) { } [1]=> string(18) "PublicStaticMethod" } bool(true) bool(true) ---------------------------------------- array(2) { [0]=> object(Foo)#1 (0) { } [1]=> string(19) "PrivateStaticMethod" } bool(true) bool(false) ---------------------------------------- array(2) { [0]=> string(3) "Foo" [1]=> string(12) "PublicMethod" } bool(true) bool(true) ---------------------------------------- array(2) { [0]=> string(3) "Foo" [1]=> string(13) "PrivateMethod" } bool(true) bool(false) ---------------------------------------- array(2) { [0]=> string(3) "Foo" [1]=> string(18) "PublicStaticMethod" } bool(true) bool(true) ---------------------------------------- array(2) { [0]=> string(3) "Foo" [1]=> string(19) "PrivateStaticMethod" } bool(true) bool(false) ----------------------------------------

preferences:
254.81 ms | 406 KiB | 407 Q