ดูเหมือนกันสำหรับฉัน แต่ฉันไม่แน่ใจ
dirname(__FILE__)
เพราะมีหลายโครงการที่ใช้
ดูเหมือนกันสำหรับฉัน แต่ฉันไม่แน่ใจ
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ของคู่มือ(การอ้างอิง) :
__DIR__
: ไดเร็กทอรีของไฟล์
หากใช้ภายในการรวมไดเร็กทอรีของไฟล์ที่รวมจะถูกส่งกลับ
ซึ่งเทียบเท่ากับdirname(__FILE__)
.
ชื่อไดเร็กทอรีนี้ไม่มีเครื่องหมายทับเว้นแต่ว่าจะเป็นไดเร็กทอรีราก
(เพิ่มใน PHP 5.3.0)
__DIR__
เร็วกว่า