Что лучше из, требуют (dirname (__ ФАЙЛ __). '/'.'myParent.php'), чем просто требуют ('myParent.php')?

Много известных Сценариев PHP включая использование WordPress dirname(__FILE__).'/myParent.php' вместо просто 'myParent.php' когда включая файлы в том же каталоге в настоящее время запускающего скрипта.

Разве они не то же самое? Почему Вы предпочитаете вводить больше?

Спасибо.

17
задан Burhan Khalid 26 August 2012 в 11:53
поделиться

3 ответа

Рекомендуется начать с ознакомления со страницей CocoaDev о подсветке синтаксиса. Многие люди пришли с решениями для различных целей.

Если вы хотите выполнить выдвижение на первый план синтаксиса исходного кода, я предлагаю, чтобы вы смотрели на UKSyntaxColoredTextDocument от Uli Kusterer.

-121--1714753-

Вместо кодирования в utf-8 следует закодировать то, что когда-либо используется paypal для публикации. Он доступен под ключом 'charset' в форме paypal says.

Поэтому для меня работал следующий код:

data = dict ([(k, v.encode (data ['charset'])) для k, v в data.items ()])

-121--2129897-

PHP должен знать абсолютный путь к файлу. dirname (__ FILE __). '/myParent.php ' уже является абсолютным путем, но ' myParent.php ' требует поиска с использованием заданных путей в include _ path для получения абсолютного пути и поиска файла. Лучшим выбором было бы './myParent.php' :

Однако более эффективно явно использовать include './file' , чем когда PHP всегда проверяет текущий каталог для каждого включения.

18
ответ дан 30 November 2019 в 10:39
поделиться

Using dirname + file name is slightly faster, because PHP will not iterate through include_path searching for the file. If speed matters, you will likely type more.

12
ответ дан 30 November 2019 в 10:39
поделиться

Помимо увеличения производительности (что, вероятно, в большинстве случаев является предварительной оптимизацией *), он также защищает от (очень странного) сценария, когда среда В конфигурации PHP текущий каталог (. ) не является частью пути включения.

* Тест включает с использованием пути, который требует поиска include_path , в отличие от относительного пути, который этого не делает. Проверено более 100000 итераций каждая

Результаты

include("include.php"):   8.3664200305939s
include("./include.php"): 8.3511519432068s

(8.3664200305939 - 8.3511519432068) / 100000 = 0.000000152680874s

Если вы не включаете сотни или тысячи файлов, 0,0000001 с в лучшем случае пренебрежимо мало.

Тестовый код

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();

Тест проводился на Macbook 10.5.8 с тактовой частотой 2,16 ГГц и PHP версии 5.2.9 (www.entropy.ch Release 7)

14
ответ дан 30 November 2019 в 10:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: