一、语法
__invoke ( $... = ? ) : mixed
在 PHP 5.3.0 及以上版本时,当尝试以调用函数的方式调用一个对象时,__invoke() 方法会被自动调用。
二、示例
<?php
/**
* 定义一个狗类
*/
class Cat {
//定义一个属性
private $name = null;
// 构造函数
function __construct(?string $name = null){
if(is_null($this->name)){
$this->setName($name);
}
}
/**
* 输出名字
*/
public function getName(){
echo "这是一只猫,名字叫{$this->name}。\n"."<br>";
}
/**
* 私有方法
*/
private function setName($name){
$this->name = $name;
}
/**
* 当类被当做方法执行是
*/
function __invoke($age) {
echo $this->name.'今年'.$age.'岁了。';
}
}
//实例化
$Cat = new Cat('旺财'); // 输出 __construct
$Cat->getName(); //输出:'这是一只猫,名字叫旺财。
$Cat(3); // 输出 旺财今年3岁了
三、更多
想查看更多,请前往:https://www.php.net/manual/zh/language.oop5.magic.php#object.invoke
浙公网安备 33010602011771号