複製程式碼 輸出結果為: 這是第 “ 2 ” 行__FILE__
文件的完整路徑和檔名。如果用在被包含檔案中,則傳回被包含的檔案名稱。
自 PHP 4.0.2 起,__FILE__ 總是包含一個絕對路徑(如果是符號連接,則是解析後的絕對路徑),而在此之前的版本有時會包含一個相對路徑。
echo '文件位於「 ' . __FILE__ . ' 」 ';
輸出結果為: 該文件位於 “ E:wampwwwtestindex.php ” __DIR__ 文件所在的目錄。如果用在被包含檔案中,則傳回被包含的檔案所在的目錄。 它等價於 dirname(__FILE__)。除非是根目錄,否則目錄中名不包括末尾的斜杠。 (PHP 5.3.0新增) 例:
} test ();?> 複製程式碼
輸出結果為: 類別名為:test 函數名稱為:_print __TRAIT__ Trait 的名字(PHP 5.4.0 新加)。自 PHP 5.4.0 起,PHP 實作了程式碼重複使用的一個方法,稱為 traits。 Trait 名包括其被聲明的作用區域(例如 FooBar)。 從基底類別繼承的成員被插入的 SayWorld Trait 中的 MyHelloWorld 方法所覆寫。 其行為 MyHelloWorld 類別中定義的方法一致。 優先順序是目前類別中的方法會覆寫 trait 方法,而 trait 方法又覆寫了基底類別中的方法。 例:
} }} }} } } }}class MyHelloWorld extends Base { }$o = new MyHelloWorld();$o->sayHello();?>複製程式碼複製程式碼複製程式碼複製程式碼複製程式碼複製程式碼複製程式碼複製碼>輸出:
Hello World!
__METHOD__
類別的方法名稱(PHP 5.0.0 新加)。傳回該方法被定義時的名字(區分大小寫)。
例:
function test() { echo '函數名為:' . __METHOD__ ;}test ();?>複製程式碼輸出結果為:
函數名為:test
__NAMESPACE__
目前命名空間的名稱(區分大小寫)。此常數是在編譯時定義的(PHP 5.3.0 新增)。
例:
namespace MyProject;echo '命名空間為:"', __NAMESPACE__, '"'; // 輸出"Project "?>複製程式碼 } public function sayHello() { parent::sayHello(); echo 'World!';
輸出結果為: 命名空間為:"MyProject" 魔術函數 __construct() 實例化物件時被調用, 當__construct和以類別名為函數名的函數同時存在時,__construct將被調用,另一個不被調用。 __destruct() 當刪除一個物件或物件操作終止時被呼叫。 __call() 物件呼叫某個方法, 若方法存在,則直接呼叫; 若不存在,則會去呼叫__call函數。 __get() 讀取一個物件的屬性時, 若屬性存在,則直接傳回屬性值; 若不存在,則會呼叫__get函數。 __set() 設定一個物件的屬性時, 若屬性存在,則直接賦值; 若不存在,則會呼叫__set函數。 __toString() 列印一個物件的時被呼叫。如echo $obj;或print $obj; __clone() 克隆對象時被呼叫。如:$t=new Test();$t1=clone $t; __sleep() serialize之前被調用。若物件比較大,想刪減一點東東再序列化,可考慮此函數。 __wakeup() unserialize時被調用,做些物件的初始化工作。 __isset() 檢測一個物件的屬性是否存在時被呼叫。如:isset($c->name)。 __unset() unset一個物件的屬性時被呼叫。如:unset($c->name)。 __set_state() 呼叫var_export時,被呼叫。用__set_state的回傳值做為var_export的回傳值。 __autoload() 實例化一個物件時,如果對應的類別不存在,則該方法被呼叫。 |