Tôi trông giống nhau, nhưng tôi không chắc,
vì có nhiều dự án sử dụng dirname(__FILE__)
.
Tôi trông giống nhau, nhưng tôi không chắc,
vì có nhiều dự án sử dụng dirname(__FILE__)
.
Câu trả lời:
Kết quả của họ là hoàn toàn giống nhau ; vì vậy, không có sự khác biệt về điều đó.
Ví dụ, hai dòng sau:
var_dump(dirname(__FILE__));
var_dump(__DIR__);
Cả hai sẽ cung cấp cùng một đầu ra:
string '/home/squale/developpement/tests/temp' (length=37)
Tuy nhiên, có ít nhất hai điểm khác biệt:
__DIR__
chỉ tồn tại với PHP> = 5.3
dirname(__FILE__)
được sử dụng rộng rãi hơn__DIR__
được đánh giá tại thời điểm biên dịch, trong khi dirname(__FILE__)
có nghĩa là một lời gọi hàm và được đánh giá tại thời điểm thực thi
__DIR__
là (hoặc, nên) nhanh hơn.
Để tham khảo, hãy xem phần Hằng số ma thuật của sách hướng dẫn (trích dẫn) :
__DIR__
: Thư mục của tệp.
Nếu được sử dụng bên trong bao gồm, thư mục của tệp được bao gồm sẽ được trả về.
Điều này tương đương vớidirname(__FILE__)
.
Tên thư mục này không có dấu gạch chéo trừ khi nó là thư mục gốc.
(Đã thêm trong PHP 5.3.0.)
__DIR__
nhanh hơn.