Heim > Backend-Entwicklung > PHP-Tutorial > Detaillierte Erklärung der __set()-Methode in PHP

Detaillierte Erklärung der __set()-Methode in PHP

藏色散人
Freigeben: 2023-04-07 06:26:01
Original
10166 Leute haben es durchsucht

In PHP werden Methoden, die mit zwei Unterstrichen __ beginnen, als Magic-Methoden bezeichnet. Diese Methoden spielen in PHP eine zentrale Rolle.

Unter anderem wird __set() aufgerufen, wenn eine Mitgliedsvariable einer Klasse festgelegt wird. Die Methode __set( $property, $value ) wird zum Festlegen privater Eigenschaften verwendet undefinierte Eigenschaft, diese Methode wird ausgelöst. Die übergebenen Parameter sind der Eigenschaftsname und der festzulegende Wert.

Bitte sehen Sie sich den Democode unten an:

<?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岁了
Nach dem Login kopieren
Laufergebnis:
我叫小红,今年16岁了
Nach dem Login kopieren

Verwandte Empfehlungen: „

Detaillierte Erklärung der __get()-Methode in PHP

Das obige ist der detaillierte Inhalt vonDetaillierte Erklärung der __set()-Methode in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
php
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage