旗下导航:搜·么
当前位置:网站首页 > PHP教程 > 正文

PHP中__set()要领详解【php教程】,PHP

作者:搜教程发布时间:2019-12-01分类:PHP教程浏览:57评论:0


导读:PHP中把以两个下划线__开首的要领称为把戏要领(Magicmethods),这些要领在PHP中充当了无足轻重的作用。个中__set(),设置一个类的成员变量时挪用_...
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()要领详解的细致内容,更多请关注ki4网别的相干文章!

标签:PHP


欢迎 发表评论: