Şu anda çalışan script aynı dizinde dosyaları da dahil olmak yerine sadece 'myParent.php'
WordPress kullanımı dirname(__FILE__).'/myParent.php'
gibi ünlü PHP sürü.
Onlar aynı şey değil mi? Neden daha yazarak tercih edersiniz?
Teşekkürler.
PHP dosyasının mutlak yolunu bilmek gerekiyor. dirname(__FILE__).'/myParent.php'
önceden kesin yolu fakat 'myParent.php'
'de verilen yolları kullanarak bir arama gerektiren include_path to get an absolute path and find the file. A better choice would be './myParent.php'
,
Ancak, Başına açık PHP her türlü talep için geçerli dizinini kontrol sahip daha {[(0)}] kullanmak daha verimlidir.
(Muhtemelen çoğu durumda bir ön-optimizasyon * olan) performans artışı yanında, aynı zamanda bir parçası olarak çevrenin PHP yapılandırma (.
) geçerli dizini yok (çok garip) senaryo korur yolunu içerir.
* include
include_path
değil, göreli bir yol karşı arama gerektiren bir yolu kullanarak Benchmark. 100000 tekrarlamalar her üzerinde test
Sonuçlar
include("include.php"): 8.3664200305939s
include("./include.php"): 8.3511519432068s
(8.3664200305939 - 8.3511519432068) / 100000 = 0.000000152680874s
Eğer dosyaları yüzlerce veya binlerce dahil değilseniz, en iyi ihmal edilebilir 0.0000001s.
Test kod
define("MAX", 100000);
ob_start();
$i = MAX;
$_t = microtime(true);
do {
include("include.php");
} while ( --$i );
$_t = microtime(true) - $_t;
ob_end_clean();
echo "include(\"include.php\"): {$_t}s\n";
ob_start();
$i = MAX;
$_t = microtime(true);
do {
include("./include.php");
} while ( --$i );
$_t = microtime(true) - $_t;
ob_end_clean();
Test PHP Version 5.2.9 ile 2.16GHz Macbook 10.5.8 yürütülmüştür (www.entropy.ch 7 Release)
Hakkında ilave bir not ('. / Dosya.php') içerir.
Sadece hız önemli ise, o zaman evet ('. / Dosya.php') dahil kullanabilirsiniz, ancak bağımlılıkları ve göreli yolları sorunları çözmek istiyorsanız, size (__ FILE __) dirname kullanarak daha iyi çünkü
include('./file.php')
hala, betiğin (including script) için göreli yolları inşa ederken
include(dirname(__FILE__).'/file.php');
Bu hat (included komut dosyası) bulunduğu mevcut script göreli yolları çözecektir.
Dirname (__ FILE __) size daha güvenilir dahil bir sürü verirken '. /' Sadece önemsiz bir performans artışı verir beri Genellikle,, dirname (__ FILE __) kullanarak daha iyidir.
/ EDIT: Ayrıca unutmayın ki sadece endişeleri include('./something.php')
, yukarıda yapılan kıyaslama size include_path yürüyüş yok çünkü include('something.php')
daha hızlı gerçekten, hangi ama kullanmak {[(2 )]} (Eğer sizin include_path bir çok yolları var) include_path yürüyüş daha da yavaş yapar dirname()
işlev çağrısı yükü, olsun.