PHP中__set()方法详解-php教程

资源魔 32 0
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开发自学

抱歉,评论功能暂时关闭!