3v4l.org

run code in 300+ PHP versions simultaneously
<?php class BaseFoo { } class Foo extends BaseFoo { protected function greet($subject) { echo "Hello $subject!"; } public function callStatic($className, $methodName) { $parameters = func_get_args(); $parameters = array_slice($parameters, 2); // Remove $className and $methodName return call_user_func_array($className . '::' . $methodName, $parameters); } } class Bar extends Foo { public function publicGreet($subject) { $this->callStatic(parent, 'greet', $subject); } } $b = new Bar(); $b->publicGreet('World');
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
Fatal error: Uncaught Error: Undefined constant "parent" in /in/3oJBM:19 Stack trace: #0 /in/3oJBM(24): Bar->publicGreet('World') #1 {main} thrown in /in/3oJBM on line 19
Process exited with code 255.
Output for 7.2.0 - 7.2.33, 7.3.0 - 7.3.33, 7.4.0 - 7.4.33
Warning: Use of undefined constant parent - assumed 'parent' (this will throw an Error in a future version of PHP) in /in/3oJBM on line 19 Warning: call_user_func_array() expects parameter 1 to be a valid callback, class 'BaseFoo' does not have a method 'greet' in /in/3oJBM on line 12
Output for 5.5.24 - 5.5.35, 5.6.8 - 5.6.28, 7.0.0 - 7.0.20, 7.1.0 - 7.1.25
Notice: Use of undefined constant parent - assumed 'parent' in /in/3oJBM on line 19 Warning: call_user_func_array() expects parameter 1 to be a valid callback, class 'BaseFoo' does not have a method 'greet' in /in/3oJBM on line 12

preferences:
164.28 ms | 402 KiB | 194 Q