php __invoke
php 类魔术方法
__invoke, 当 class 定义此方法时,使用函数方式调用类的实例化时,此方法就会被调用。
简单例子⌗
当我们以执行函数的方式执行$test时,可以看到__invoke方法被执行了,用is_callable()函数检测$test,返回是true,也证明了这一点。
带参数⌗
它就是一个正常函数。
invoke 和 construct⌗
construct函数是在实例化时触发,而invoke是在调用时触发,所以invoke可以使用类的属性。
用途⌗
1. 单例类⌗
也就是说类只有一个方法,这时使用__invoke就可以像使用函数那样使用此方法了。但是仍然可以使用继承等类的属性;
2. 当做get方法使用⌗
可以自定制类的get方法返回的信息,一般类的属性都是声明为protected,此时你可以根据情况,将不危险的属性暴露给用户。
Read other posts