PHP中的魔术方法:
PHP的魔术方法主要是在特定的条件下执行相应的魔术方法。这和很多框架中的钩子函数有些类似,不同的是,钩子函数是在生命周期的某个周期内自动执行,而魔术方法是在触发某种条件下自动执行。
PHP中常用的魔术方法有:set(),get(),call()等魔术方法。set()和get()的使用情况是:一般情况下,我们在类的外部不能访问类里面的私有变量,但我们实在需要在类的外部访问类的私有变量(private)时,就可以使用set()和get()方法,例如:
class fruit
{
private $fruitName;
private $color;
public function __set($var,$val)
{
$this->$var = $val;
}
public function __get($var)
{
return $this->$var;
}
}
$fruit = new Fruit();
$fruit->fruitName = '苹果';
echo $fruit->fruitName;
这样就能在类的外边访问类的私有属性。
__call的使用情况是:当我们调用的类的方法不存在的时候,自动执行__call方法,至于__call方法中怎么执行,看编码者的喜好。
__call的存在意义主要在于:当我们调用一个类中不存在的方法时,不让系统报错,而是执行一段我们需要的逻辑。