PHP分类调用,PHP的可调用类型(callable)总结

本文详细探讨了PHP中call_user_func函数的使用,包括普通函数调用、类静态方法、对象方法、静态方法引用、匿名函数、箭头函数及相对路径调用。通过实例展示了不同场景下的调用方式,并介绍了自PHP 5.3.0以来的扩展用法。
摘要由CSDN通过智能技术生成

// 1 普通函数

call_user_func('my_function');

// 2类的静态方法

call_user_func(['MyClass', 'myCallbackMethod']);

// 3对象方法

call_user_func([new MyClass(), 'myCallbackMethod']);

//4类的静态方法(2)

call_user_func('MyClass::myCallbackMethod');

//5匿名函数

call_user_func(function(){echo '匿名函数';});

//6箭头函数

call_user_func(fn() =>print('箭头函数'));

//7相对关系

call_user_func(array('B', 'parent::who'));

// 8: Objects implementing __invoke can be used as callables

class C {

public function __invoke($name) {

echo 'Hello ', $name, "\n";

}

}$c = new C();

call_user_func($c, 'PHP!');

?>

其它用法:

call_user_func(__NAMESPACE__ .'\Foo::test'); // As of PHP 5.3.0

call_user_func(array(__NAMESPACE__ .'\Foo', 'test')); // As of PHP 5.3.0

class myclass {

static function say_hello()

{

echo "Hello!\n";

}

}

$classname = "myclass";

call_user_func(array($classname, 'say_hello'));

call_user_func($classname .'::say_hello'); // As of 5.2.3

$myobject = new myclass();

call_user_func(array($myobject, 'say_hello'));

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值