您的位置 首页 php

PHP魔术方法会变魔术?理解就好。

/**

* 魔术方法,所有魔术方法只要符合触发条件就会调用。

* 本质意义:在于开发者和调用者对类的控制权。

*/

class Magic

{

function __construct()

{

echo ” 构造方法 ,在类 实例化 时调用(只要实例化类就会调用)”.'<br>’;

}

function __destruct()

{

echo “析构方法,在程序执行完后调用”.'<br>’;

}

public function __get($a)

{

//$a为传入的不可见属性

echo “访问获取(读取)不可见属性时,被触发(调用)”.'<br>’.$a.'<br>’;

}

public function __set($a,$b)

{

//$a为传入的不可见属性,$b为传入的额值

echo “当对一个不可见属性赋值时调用”.'<br>’.$a.’——–‘.$b.'<br>’;

}

public function __isset($d)

{

//$d为传入的不可见属性

echo “当调用isset()、empty()方法判断一个不可见属性时自动调用”.$d.'<br>’;

}

public function __unset($e)

{

echo “销毁(调用unset()方法)一个不可见属性时调用”.$e.'<br>’;

}

}

$magic = new Magic();

// $magic->lina;//lina作为参数传到__get()中,也作为__get()值

// $magic->zhangwei = ‘lvziqiao’;//__set()中有2个参数,第一个作为属性,第二个作为值。

isset($magic->hejiong);

总结:有魔术方法的存在,开发者可以对调用这个类增加权限,从而增加安全性。

文章来源:智云一二三科技

文章标题:PHP魔术方法会变魔术?理解就好。

文章地址:https://www.zhihuclub.com/80197.shtml

关于作者: 智云科技

热门文章

网站地图