PHP魔术方法__invoke()

当一个对象被当做函数来使用的时候,默认是会报错的。

class Test {

}

$obj = new Test();

var_dump($obj());

PHP Fatal error: Uncaught Error: Function name must be a string

如果想让对象具有这样的能力,则需要重新实现 __invoke()

class Test {
	public function __invoke(){
		return Test::class;
	}
}

$obj = new Test();

var_dump($obj()); // string(4) "Test"
发布了412 篇原创文章 · 获赞 25 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/raoxiaoya/article/details/103887757