PHP魔術方法和魔術變數

2022-09-07 06:24:09 字數 2007 閱讀 9707

__construct(),類的建構函式

__destruct(),類的析構函式

__call(),在物件中呼叫乙個不可訪問方法時呼叫

__callstatic(),用靜態方式中呼叫乙個不可訪問方法時呼叫

__get(),獲得乙個類的成員變數時呼叫

__set(),設定乙個類的成員變數時呼叫

__isset(),當對不可訪問屬性呼叫isset()或empty()時呼叫

__unset(),當對不可訪問屬性呼叫unset()時被呼叫。

__sleep(),執行serialize()時,先會呼叫這個函式

__wakeup(),執行unserialize()時,先會呼叫這個函式

__tostring(),類被當成字串時的回應方法

__invoke(),呼叫函式的方式呼叫乙個物件時的回應方法

__set_state(),呼叫var_export()匯出類時,此靜態方法會被呼叫。

__clone(),當物件複製完成時呼叫

__autoload(),嘗試載入未定義的類

__debuginfo(),列印所需除錯資訊

9,10,16目前還沒想明白有什麼用。

關於   __sleep()函式的描述:serialize之前被呼叫。若物件比較大,想刪減一點東東再序列化,可考慮一下此函式。 這個看著有點兒意思 。 

__line__

返回檔案中的當前行號。

<?php

echo __line__;

echo "\n";

///輸出結果

wangtb:c wangtb$ php b.php

3

__file__

返回檔案的完整路徑和檔名。如果用在包含檔案中,則返回包含檔名。自 php 4.0.2 起,__file__ 總是包含乙個絕對路徑,而在此之前的版本有時會包含乙個相對路徑。

<?php

echo __file__;

echo "\n";

####

/users/wangtb/workspace/coding/abs/c/b.php

__dir__

檔案所在的目錄。如果用在被包括檔案中,則返回被包括的檔案所在的目錄。

<?php

echo __dir__;

echo "\n";

###/users/wangtb/workspace/coding/abs/c

__function__

返回函式名稱(php 4.3.0 新加)。自 php 5 起本常量返回該函式被定義時的名字(區分大小寫)。在 php 4 中該值總是小寫字母的。

<?php

function test()

test();

#####

php b.php

test

abs

__class__

返回類的名稱(php 4.3.0 新加)。自 php 5 起本常量返回該類被定義時的名字(區分大小寫)。在 php 4 中該值總是小寫字母的。

<?php

class t

}new t();

###php b.php

t

__method__

返回類的方法名(php 5.0.0 新加)。返回該方法被定義時的名字(區分大小寫)。6

<?php

class t

}new t();

###php b.php

tt::__construct

__construct

PHP魔術變數和魔術方法

魔術變數 1.file 當前執行檔案的完整路徑和檔名。如果用在被包含檔案中,則返回被包含的檔名。魔術方法 1.sleep 和 weekup 執行serialize 前呼叫類裡的 sleep 方法,並返回陣列 去掉不必要的屬性 執行unserialize 前呼叫 wakeup 方法,並返回序列化後需要...

PHP魔術方法和魔術常量

具體的解釋如下 1。construct 例項化物件時被呼叫,當 construct和以類名為函式名的函式同時存在時,construct將被呼叫,另乙個不被呼叫。2。destruct 當刪除乙個物件或物件操作終止時被呼叫。3。call 物件呼叫某個方法,若方法存在,則直接呼叫 若不存在,則會去呼叫 c...

PHP魔術方法和魔術常量

具體的解釋如下 1。construct 例項化物件時被呼叫,當 construct和以類名為函式名的函式同時存在時,construct將被呼叫,另乙個不被呼叫。2。destruct 當刪除乙個物件或物件操作終止時被呼叫。3。call 物件呼叫某個方法,若方法存在,則直接呼叫 若不存在,則會去呼叫 c...