PHP 中的魔術方法 屬性過載

2022-08-09 21:21:17 字數 2306 閱讀 3064

php過載:是指,使用乙個物件(或類)的時候,如果訪問了其並沒有定義的(即不存在的)屬性或方法,則會使用某些預先定義好的「特殊方法」來應對這種情況。

php中的過載,其實是一種內部「應對非法使用物件或類的措施」

__set($name,$value)該方法, 在對乙個物件不存在的屬性進行賦值的時候,會被自動呼叫

__get()該方法,在對乙個物件不存在的屬性進行取值的時候,會被自動呼叫!

__isset($name)該方法,在對乙個物件不存在的屬性進行isset()判斷的時候,會被自動呼叫!

__unset($name)該方法,在對乙個物件不存在的屬性進行unset()操作的時候,會被自動呼叫!

使用存在的屬性賦值

31$t->p2 = 22;//

使用不存在存在的屬性賦值

32$t->host="localhost";//

使用不存在存在的屬性賦值

33$t->port = "3306";//

使用不存在存在的屬性賦值

34echo "";

35var_dump($t

);36

echo "

";

37echo "

屬性p=".$t->p;

38echo "

屬性p2=".$t->p2;

39echo "

屬性p3=".$t->p3;

4041

echo "

";42

echo "

屬性p是否存在?";

43var_dump(isset($t->p));

44echo "

屬性p2是否存在?";

45var_dump(isset($t->p2));

46echo "

屬性p3是否存在?";

47var_dump(isset($t->p3));

4849

echo "

";50

echo "

unset()屬性p2之前

";51

print_r($t->list

);52

unset($t->p2);

53echo "

unset()屬性p2之後

";54

print_r($t->list);

view code

Python中類的方法屬性與方法屬性的動態繫結

最近在 學習python 純粹是自己的興趣愛好,然而並沒有系統地看python 程式設計書籍,覺得上面描述過於繁瑣,在 找了一些學習的 發現廖雪峰老師的 上面的學習資源很不錯,而且言簡意賅,提取了一些 python python 的執行 缺點就是沒有系統的看 python 的書籍,不能及時的將知識的...

PHP的過載 使用魔術方法實現

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

PHP中的魔術方法

php 將所有以 兩個下劃線 開頭的類方法保留為魔術方法。因此,在定義類方法時,除了下述魔術方法外,建議不要以 為字首。construct 構造方法或建構函式 具有建構函式的類會在每次建立新物件時,先呼叫此方法。因此,非常適合在使用物件之前做一些初始化操作。注意 如果子類中定義了建構函式則不會隱式呼...