PHP中把以两个下划线__扫尾的办法称为魔术办法(Magic methods),这些办法正在PHP中充任了无足轻重的作用。
此中__set(),设置一个类的成员变量时挪用
__set() 的作用:
__set( $property, $value )` 办法用来设置公有属性, 给一个不决义的属性赋值时,此办法会被触发,通报的参数是被设置的属性名以及值。
请看上面的演示代码:
<?php class Person { private $name; private $age; public function __construct($name="", $age=25) { $this->name = $name; $this->age = $age; } /** * 申明魔术办法需求两个参数,真接为公有属性赋值时主动挪用,并能够屏蔽一些合法赋值 * @param $property * @param $value */ public function __set($property, $value) { if ($property=="age") { if ($value > 150 || $value < 0) { return; } } $this->$property = $value; } /** * 正在类中申明谈话的办法,将一切的公有属性说出 */ public function say(){ echo "我叫".$this->name.",往年".$this->age."岁了"; } } $Person=new Person("小明", 25); //留意,初始值将被上面所扭转 //主动挪用了__set()函数,将属性名name传给第一个参数,将属性值”李四”传给第二个参数 $Person->name = "小红"; //赋值胜利。假如不__set(),则犯错。 //主动挪用了__set()函数,将属性名age传给第一个参数,将属性值26传给第二个参数 $Person->age = 16; //赋值胜利 $Person->age = 160; //160是一个合法值,赋值生效 $Person->say(); //输入:我叫小红,往年16岁了
运转后果:
我叫小红,往年16岁了
相干保举:《PHP中__get()办法详解》
以上就是PHP中__set()办法详解的具体内容,更多请存眷资源魔其它相干文章!
标签: php php开发教程 php开发资料 php开发自学
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。
抱歉,评论功能暂时关闭!