PHP是世界上最流行的開發(fā)web應用程序的腳本語言之一。PHP有眾多的內置函數(shù)和全局變量可以使用,其中,魔術變量就是非常實用的一種全局變量,用于存儲有關腳本本身的信息。
魔術變量總共有9個,在本文中,我會根據(jù)這9個魔術變量進行逐一講解。首先是最常用的,也是最簡單的兩個魔術變量:__LINE__ 和 __FILE__。
<?php echo "當前行數(shù)是:" . __LINE__ . "<br>"; echo "當前文件名是:" . __FILE__; ?>
當你運行以上代碼,你會看到像這樣的結果:
當前行數(shù)是:3 當前文件名是:E:\code\test.php
__LINE__ 返回的是當前運行的行數(shù),__FILE__ 返回的是當前運行的文件名,非常有用。
另一個非常實用的魔術變量是 __DIR__,它返回的是當前文件所在的目錄,如下:
<?php echo "當前目錄是:" . __DIR__; ?>
當你運行以上代碼,你會看到這樣的結果:
當前目錄是:E:\code
__DIR__ 是相對路徑,即不包含盤符名稱和網站根目錄,所以需要根據(jù)實際情況來確定相對路徑。
另外一個適用的魔術變量是 __FUNCTION__,它返回正在運行的函數(shù)的名稱。例如:
<?php function foo() { echo "當前運行的函數(shù)是:" . __FUNCTION__; } foo(); ?>
當你運行以上代碼,你會看到這樣的結果:
當前運行的函數(shù)是:foo
__FUNCTION__ 可以在類的方法中使用,返回的是正在運行的方法的名稱。
另一個有用的魔術變量是 __CLASS__,它返回當前運行的類的名稱:
<?php class MyClass { public function foo() { echo "當前運行的類是:" . __CLASS__; } } $obj = new MyClass(); $obj->foo(); ?>
當你運行以上代碼,你會看到這樣的結果:
當前運行的類是:MyClass
另外一個非常實用的魔術變量是 __METHOD__,它返回當前正在運行的方法的名稱,還包括正在運行的方法所在的類名稱,例如:
<?php class MyClass { public function foo() { echo "當前運行的類是:" . __CLASS__ . "<br>"; echo "當前運行的方法是:" . __METHOD__; } } $obj = new MyClass(); $obj->foo(); ?>
當你運行以上代碼,你會看到這樣的結果:
當前運行的類是:MyClass 當前運行的方法是:MyClass::foo
如上例,__METHOD__ 返回的是當前正在運行的方法的名稱和所屬的類名稱。
還有一個魔術變量是 __NAMESPACE__,它返回當前運行的命名空間的名稱。如果當前沒有命名空間,則返回空值。例如:
<?php namespace MyNamespace; echo "當前運行的命名空間是:" . __NAMESPACE__; ?>
當你運行以上代碼,你會看到這樣的結果:
當前運行的命名空間是:MyNamespace
其他的兩個魔術變量是 __TRAIT__ 和 __METHOD__,它們的使用范圍比較有限,這里不做介紹。
總之,魔術變量在PHP開發(fā)中非常有用,可以方便我們獲取當前運行腳本的各種信息。請好好使用它們。