簡體   English   中英

PHP中的__DIR__和dirname(__ FILE__)之間有什么區別嗎?

[英]Is there any difference between __DIR__ and dirname(__FILE__) in PHP?

對我來說看起來一樣,但我不確定,

因為有很多項目使用dirname(__FILE__)

他們的結果完全一樣 ; 所以,沒有區別。


例如,以下兩行:

var_dump(dirname(__FILE__));
var_dump(__DIR__);

兩者都會給出相同的輸出:

string '/home/squale/developpement/tests/temp' (length=37)


但是,至少存在兩個不同之處:

  • __DIR__僅在PHP> = 5.3時存在
    • 這就是dirname(__FILE__)被廣泛使用的原因
  • __DIR__在編譯時計算,而dirname(__FILE__)表示函數調用,在執行時計算
    • 所以, __DIR__(或應該)更快。


作為參考,請參閱手冊的Magic constants部分(引用)

__DIR__ :文件的目錄。
如果在include中使用,則返回包含文件的目錄。
這相當於dirname(__FILE__)
除非它是根目錄,否則此目錄名稱沒有尾部斜杠。
(在PHP 5.3.0中添加。)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM