php 中set是什麼 PHP中

2021-10-22 21:48:50 字數 1134 閱讀 1298

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 中set是什麼 PHP中

php中把以兩個下劃線 開頭的方法稱為魔術方法 magic methods 這些方法在php中充當了舉足輕重的作用。其中 set 設定乙個類的成員變數時呼叫 set 的作用 set property,value 方法用來設定私有屬性,給乙個未定義的屬性賦值時,此方法會被觸發,傳遞的引數是被設定的屬性...

PHP中過載是什麼

from php所提供的 過載 overloading 是指動態地 建立 類屬性和方法。我們是通過魔術方法 magic methods 來實現的。當呼叫當前環境下未定義或不可見的類屬性或方法時,過載方法會被呼叫。本節後面將使用 不可訪問屬性 inaccessible properties 和 不可訪...

php中 this 是什麼意思

php中 this 是什麼意思 this 的含義是表示 例項化後的 具體物件!我們一般是先宣告乙個類,然後用這個類去例項化物件!但是,當我們在宣告這個類的時候,想在類本身內部使用本類的屬性或者方法。應該怎麼表示呢?例如 我宣告乙個user類!它只含有乙個屬性 name class user 現在,我...