Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > правильность


Автор: afork 23.6.2006, 19:04
Встал вопрос о нижеприведеннос фрагменте как правильнее ... потом перешел на тему как быстрее ... ни до чего не доспорилисиь пришли сюда .... 

Код

define("core", true);
include_once("core/core.php");
...


или 

Код

define("core", "core/core.php");
include_once(core);
...


P.S.
"core" в дальнейшкм используется только на проверку ее наличия. 

Автор: RomanK 23.6.2006, 19:14
ИМХО. Правильней так, как вы сами решите! smile По скорости, помойму без разницы выйдет. Это называется "экономия на спичках" (с) вроде.
Если
Цитата(afork @  23.6.2006,  19:04 Найти цитируемый пост)
"core" в дальнейшкм используется только на проверку ее наличия.
, то думаю лучше первое!
Потому что:
Код

if( core )
{
    echo 'Ok';
}

А как это проверить во втором случае? Конечно можно точно также, но как то не логично получится. ИМХО.  

Автор: Mal Hack 23.6.2006, 19:44
afork, у тебя два совершенно разных по реализации кода. 

Автор: АдамАдамович 23.6.2006, 20:42
Простите, лень авторизоваться.

Просто мой друг неправильно объяснил.
Мы пишем движок.  Есть файл сборщик, к примеру main.php, который должен объявить константу, существоваение которой в дальнейшем проверяют модули. Если константы нет - модуль откланялся и не запустился.
Мой друг решил использовать константу "рационально", записав в ее значение путь к файлу ядра, а в дальнещем использовать 1 раз ее непосредственное значение в include_once.  Так вот и возник вопрос, а правильно ли так делать? а как все же быстрее (хоть на сотую долю милисекунды  smile  )

Прошу пояснять ваше мнение более обоснованно. 

+ RomanK 
С тобой согласен, но пример никудышний. 

Автор: Mal Hack 23.6.2006, 20:59
Код

define("CORE", "/path_from_koren/core/core.php");
// в модулях
if( ! defined( "CORE" ) )
 { exit( "Modul not load in main file" ); }
 

Автор: АдамАдамович 27.6.2006, 00:27
Mal Hack 
доводов так и не увидел. почему так? просто личное мнение - это не то. нужно какое либо подтверждение. 

Автор: Drache 27.6.2006, 09:21
мое личное мнение, хотя может и не совсем верно, такое:
по скорости оба варианта абсолютно идентично должны работать, если пхп обрабатывает константы как и Си например, т.е. перед началом разборки всего остального скрипта или как-то так.
Т.е. если константа используется в include, то это то же самое, что обычный строковый литерал туда записать.
Если дальше делать выбор межуд if() и defined(), то тут уже не знаю кто быстрее работает. 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)