系統常數
FILE 目前檔案名稱
LINE 目前行數
FUNCTION 目前函數名稱
CLASS 目前類別名稱
METHOD 目前物件的方法名
詳細分析
1. FILE
檔案的完整路徑和檔案名稱。如果用在被包含檔案中,則傳回被包含的檔案名稱。自 PHP 4.0.2 起,FILE 總是包含一個絕對路徑(如果是符號連接,則是解析後的絕對路徑),而在此之前的版本有時會包含一個相對路徑。
PHP 常數dirname(file)
FILE :稱為PHP魔術常數,傳回目前執行PHP腳本的完整路徑與檔名,包含一個絕對路徑
1 )dirname(FILE) 函數傳回的是腳本所在的路徑。 更新網路
例如檔案b.php 包含以下內容:
<?php $basedir = dirname(FILE); echo $basedir //将在页面打印出一个这个文件所在绝对路径! ?>
這個相當於, asp中的server.mappth的用法
如果b.php被其他目錄裡的a.php檔案require或者include 去引用的話。 變數$basedir 的內容還是b.php所在的那個資料夾的路徑。 而不是變成a.php檔案所在的目錄。
2)dirname(FILE) 一般會傳回檔案所的目前目錄到系統根目錄的一個目錄結構。
不會傳回目前的檔案名稱。 dirname(FILE) 也可能回傳一個。(當前目錄) [原因是b.php 檔案在 http.conf 或PHP 配置開發環境的預設WEB目錄下
<?php /** 在你的公用的配置文件中,来设置你的根目录,这样就不用担心经常搬家了。 */ define('ROOT_PATH', dirname(FILE) . DIRECTORY_SEPARATOR); echo ROOT_PATH; echo "<br>"; echo FILE; echo "<br>"; echo dirname(FILE); echo "<br>"; echo dirname(dirname(FILE)); ?>
##2. LINE
檔案中的目前行號。這個變數在調試錯誤的時候,還是比較有作用的,其他的時候,沒什麼用處
<?php echo LINE; //显示,LINE所在的行号 ?>
類別的名稱,PHP5回傳的結果是區分大小寫的
<?php class base_class { function say_a() { echo "'a' – said the " . CLASS . "<br/>"; } function say_b() { echo "'b' – said the " . get_class($this) . "<br/>"; } } class derived_class extends base_class { function say_a() { parent::say_a(); echo "'a' – said the " . CLASS . "<br/>"; } function say_b() { parent::say_b(); echo "'b' – said the " . get_class($this) . "<br/>"; } } $obj_b = new derived_class(); $obj_b->say_a(); echo "<br/>"; $obj_b->say_b(); ?>
結果為:'a' – said the base_class
'a' – said the derived_class
'b' – said the derived_class
'b' – said the derived_class
##4. FUNCTION和METHOD
FUNCTION:函數名稱,php5中傳回的結果是區分大小寫的METHOD:方法中的函數名稱,php5中傳回的結果是區分大小寫的
二個都是取得方法的名稱,有什麼不同呢?<?php class test { function a() { echo FUNCTION; echo "<br>"; echo METHOD; } } function good (){ echo FUNCTION; echo "<br>"; echo METHOD; } $test = new test(); $test->a(); echo "<br>"; good(); ?>
a test::a good good
相對於孤立的函數來說,二個都可以取出函數名,沒什麼區別,如果是class中的方法時,FUNCTION只能取出class的方法名,而METHOD不光能取出方法名,還能取出class名
#5. DIR
#####檔案所在的目錄。如果用在被包含檔案中,則傳回被包含的檔案所在的目錄。它等價於 dirname(FILE)。除非是根目錄,否則目錄中名不包括末尾的斜杠。 (PHP 5.3.0新增)###如果在5.3以前的版本中想用DIR的話,可以這樣###<?php if(!defined('DIR')) { $iPos = strrpos(FILE, "/"); define("DIR", substr(FILE, 0, $iPos) . "/"); } ?>
<?php //php5.3 class Model { public static function find() { echo STATIC; } } class Product extends Model {} class User extends Model {} Product::find(); // "Product" User::find(); // "User" ?>
以上是php系統常數魔術方法說明和魔術變數用法實例總結的詳細內容。更多資訊請關注PHP中文網其他相關文章!