<?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;
}
}
preferences:
69.73 ms | 405 KiB | 5 Q