php魔法函式與魔法常量使用介紹

2022-10-06 08:45:06 字數 1964 閱讀 9469

php 魔術函式

1。__construct()

例項化物件時被呼叫,

當__construct和以類名為函式名的函式同時存在時,__construct將被呼叫,另乙個不被呼叫。

2。__destruct()

當刪除乙個物件或物件操作終止時被呼叫。

3。__call()

物件呼叫某個方法,

若方法存在,則直接呼叫;

若不存在,則會去呼叫__call函式。

4。__get()

讀取乙個物件的屬性時,

若屬性存在,則直接返回屬性值;

若不存在,則會呼叫__get函式。

5。__set(

設定乙個物件的屬性時,sidbo

若屬性存在,則直接賦值;

若不存在,則會呼叫__set函式。

6。__tostring()

列印乙個物件的時被呼叫。如echo $obj;或print $obj;

7。__clone()

轉殖物件時被呼叫。如:$t=new test(程式設計客棧);$t1=clone $t;

8。__sleep()

serialize之前被呼叫。若物件比較大,想刪減一點東東再序列化,可考慮一下此函式。

9。__wakeup()

unserialize時被呼叫,做些物件的初始化工作。

10。__isset()

檢測乙個物件的屬性是否存在時被呼叫。如:isset($c->name)。

11。__unset()

unset乙個物件的屬性時被呼叫。如:unset($c->name)。

12。__set_state()

呼叫var_export時,被呼叫。用__set_state的返回值做為var_export的返回值。

13。__autoload()

例項化乙個物件時,如果對應的類不存在,則該方法被呼叫。

php 魔術常量

1。__line__

返回檔案中的當前行號。

2。__file__

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

3。__function__

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

4。__class__

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

5。__method__

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

(1)初識魔術方法

php5.0發布以來為我們提供了很多物件導向的特性,尤其是為我們提供了好多易用的魔術方法,這些魔術方法可以讓我們簡化我們的編碼,更好的設計我們的系統。今天我們就來認識下php5.0給我們提供的魔術方法。

php使用魔法函式和不使用魔法函式比較

/*** use magic 0.31868386268616s

* not use magic 0.11876797676086s

*/class test

}function microtime_float()

$time_start = microtime_float();

$i = 0;

while ($i<100000)

$time_end = microtime_float();

$time = $time_end - $time_start;

echo "did nothing in $time seconds\n";

建議盡量少用php魔法函式

本文標題: php魔法函式與魔法常量使用介紹

本文位址:

PHP魔法常量

php 向它執行的任何指令碼提供了大量的預定義常量。line 檔案中的當前行號 echo 這是第 line 行 file 檔案的完整路徑 絕對路徑 和檔名。如果用在被包含檔案中,則返回被包含的檔名。echo 該檔案位於 file 該檔案位於 d wampserver www workspace he...

PHP預定義常量(魔法常量)

檔案中的當前行號 檔案的完整路徑和檔名。如果用在被包含檔案中,則返回被包含的檔名。檔案所在的目錄。如果用在被包括檔案中,則返回被包括的檔案所在的目錄。它等價於 dirname file 除非是根目錄,否則目錄中名不包括末尾的斜槓。php 5.3.0中新增 函式名稱 php 4.3.0 新加 自 ph...

php魔法函式

發現在ctf中,關於php幾大魔法函式的考點還是很多的,也是很基礎的,也有很多的安全問題也是這些魔法函式造成的,簡單記錄一下關於魔法函式的理解以及在發現安全過程中遇到後怎麼進行繞過。1 wakeup wakeup 是在反序列化操作中起作用的魔法函式,當unserialize的時候,會檢查時候存在 w...