PHP常用的魔術方法及規則

2022-07-25 20:21:10 字數 1310 閱讀 7918

**

1. __construct 具有建構函式的類會在每次建立新物件時先呼叫此方法;初始化工作執行。

2. __desstruct 物件的所有引用都被刪除或者當物件被顯式銷毀時執行。

3.__call()在物件中呼叫乙個不可訪問方法時,__call() 會被呼叫。

4.__callstatic()在靜態上下文中呼叫乙個不可訪問方法時,__callstatic() 會被呼叫。

5.__set() 在給不可訪問的屬性賦值時呼叫

6.__get() 讀取不可訪問的屬性值是自動呼叫

7.__isset() 當對不可訪問的私有屬性使用isset或empty時自動呼叫

8.__unset() 當對不可訪問的私有屬性使用unset時;自動呼叫

9.__tostring()當乙個類的例項物件;被當成乙個字串輸出時呼叫

<?php 

class a

//獲取私有屬性

public function __get($a)

/** 當對不可訪問屬性呼叫 isset() 或 empty() 時,__isset() 會被呼叫。*/

public function __isset($name)

/** 當對不可訪問屬性呼叫 unset()會被呼叫。*/

public function __unset($name)

//方法用於乙個類被當成字串時應怎樣回應

public function __tostring()

}$test = new a();

echo $test . '

'; // 輸出:james __tostring()方法用於乙個類被當成字串時應怎樣回應

//設定私有屬性值的時候,呼叫_set()方法

$test->name = "中國人";//輸出:屬性:'name' 值: '中國人' 在直接設定私有屬性值的時候,自動呼叫了這個__set()方法為私有屬性賦值

//獲取私有屬性值的時候,呼叫_get()方法

echo $test->name.'

'; //輸出:屬性:'name' 在直接獲取私有屬性值的時候,自動呼叫了這個__get()方法 中國人

var_dump(isset($test->name)); //返回 true

var_dump(empty($test->name)); //返回 false

unset($test->name); //銷毀時;自動呼叫__unset

var_dump($test->name); //報錯;未定義 undefined property: a::$name

php常用魔術方法

魔術方法和建構函式 construct和複製物件時自動呼叫的函式 clone相似,都是在執行某一操作時會被呼叫,通常和乙個關鍵字相連。通常情況下在類中會定義私有屬性,這是為了保護資料而使用的措施,但是也給我們帶來了麻煩。想要修改它們的值時,是通過呼叫我們定義的介面函式來完成的。每次需要修改變數都要呼...

php常用魔術方法

1.call 當使用乙個未定義的方法時呼叫此方法 2.autoload 使用尚未被定義的類時自動呼叫。通過此函式,指令碼引擎在 php 出錯失敗前有了最後乙個機會載入所需的類加粗樣式 3.construct 當乙個物件被建立時呼叫此方法,好處是可以使構造方法有乙個獨一無二的名稱,無論它所在的類的名稱...

PHP 常用的魔術方法

建構函式 construct 析構函式 destruct 當呼叫乙個未定義 包括沒有許可權訪問 的方法是呼叫此方法 call 處理靜態方法呼叫 callstatic 當呼叫乙個未定義的屬性時訪問此方法 get 給乙個未定義的屬性賦值時呼叫 set 當在乙個未定義的屬性上呼叫isset 函式時呼叫此方...