PHP魔術常量集合-面試會問的
阿新 • • 發佈:2018-11-25
<?php
echo __LINE__; //當前行
echo __FILE__;//檔案的完整路徑和檔名
echo __DIR__;//檔案所在目錄
echo __FUNCTION__;//PHP4.3.0新增的,返回該函式在定義時的名稱
echo __CLASS__;//PHP4.3.0新增的,類的名稱(區分大小寫)
echo __METHOD__;//PHP 5.0.0 新增的,類的方法名稱(區分大小寫)
echo __NAMESPACE__;//PHP 5.3.0新增的,當前名稱空間的名稱(區分大小寫)
?>
還有一個比較特殊的,叫做:__TRAIT__ PHP5.4.0新增的
解釋:從基類繼承的成員被插入的 SayWorld Trait 中的 MyHelloWorld 方法所覆蓋。其行為 MyHelloWorld 類中定義的方法一致。優先順序是當前類中的方法會覆蓋 trait 方法,而 trait 方法又覆蓋了基類中的方法。
<?php class Base { public function sayHello() { echo 'Hello '; } } trait SayWorld { public function sayHello() { parent::sayHello(); echo 'World!'; } } class MyHelloWorld extends Base { use SayWorld; } $o = new MyHelloWorld(); $o->sayHello(); ?>
最後輸出:Hello World!