__tostring方法会在把对象转换为staring的时候自动调用
__invoke会在把对象当做一个方法调用的时候自动调用
__tostring()
当对象被当作string使用时,这个方法会被自动调用
echo $obj;
__invoke()
当对象被当作方法调用时,这个方法会被自动调用
$obj(4);
123456
__tostring() __invoke()
__tostring(), __invoke()
__tostring方法与__invoke方法的使用
<?php
class MagicTest{
//__tostring会在把对象转换为string时自动调用
public function __tostring(){
return "This is the class MagicTest";
}
//__invoke会把在对象当做一个方法的时候自动调用
public function __invoke($x){
echo "_invoke called with parameter ".$x."\n";
}
}
$obj=new MagicTest();
echo $obj."\n";
$obj(5);
?>
__tostring会在把对象转换为string时自动调用
__invoke会把在对象当做一个方法的时候自动调用
注意是双下划线
1.魔术方法: __tostring会在把对象转换为string的时候自动调用
2.魔术方法: __invoke会在把对象当作方法的时候自动调用
(前提是这些魔术方法都要定义在类里面)