3v4l.org

run code in 300+ PHP versions simultaneously
<?php // An example callback function function my_callback_function() { echo 'hello world!', PHP_EOL; } // Callback methods in classes class ParentClass { static function myCallbackMethod() { echo 'Hello Parent!', PHP_EOL; } } class MyClass extends ParentClass { static function myCallbackMethod() { echo 'Hello Child!', PHP_EOL; } } class Invokable { public function __invoke() { echo 'Hello Invokable', PHP_EOL; } } $obj = new MyClass(); $invokable = new Invokable(); $callbacks = array( 'type1' => 'my_callback_function', 'type2' => array('MyClass', 'myCallbackMethod'), 'type3' => array($obj, 'myCallbackMethod'), 'type6' => $invokable, 'type7' => function() { echo 'Hello Closure', PHP_EOL; }, 'type4' => 'MyClass::myCallbackMethod', 'type5' => array('MyClass', 'parent::myCallbackMethod'), ); foreach( $callbacks as $key => $callback ) { echo PHP_EOL, 'Testing ', $key, PHP_EOL; var_dump(is_callable($callback)); call_user_func($callback); try { $callback(); } catch( Error $e ) { echo $e->getMessage(), PHP_EOL; } }
Output for git.master, git.master_jit, rfc.property-hooks
Testing type1 bool(true) hello world! hello world! Testing type2 bool(true) Hello Child! Hello Child! Testing type3 bool(true) Hello Child! Hello Child! Testing type6 bool(true) Hello Invokable Hello Invokable Testing type7 bool(true) Hello Closure Hello Closure Testing type4 bool(true) Hello Child! Hello Child! Testing type5 Deprecated: Callables of the form ["MyClass", "parent::myCallbackMethod"] are deprecated in /in/C28tc on line 42 bool(true) Deprecated: Callables of the form ["MyClass", "parent::myCallbackMethod"] are deprecated in /in/C28tc on line 43 Hello Parent! Call to undefined method MyClass::parent::myCallbackMethod()

This tab shows result from various feature-branches currently under review by the php developers. Contact me to have additional branches featured.

Active branches

Archived branches

Once feature-branches are merged or declined, they are no longer available. Their functionality (when merged) can be viewed from the main output page


preferences:
59.64 ms | 407 KiB | 5 Q