![]() |
![]() |
Ильдар 01.03.2004 - 12:44 |
Скажите как лучше подключать скрипты? У меня почти все скрипты используют файл funcs.php в котором я собрал функции. Читал, что require подключается даже если нет обращений к подключаемому скрипту, а inсludе только когда идет обращение и этим лучше. А еще видел в скриптах require_once() это для чего? Что лучше использовать? |
Zeratul 1 - 01.03.2004 - 14:10 |
to Ильдар: Идея такая. inсludе включает код подключаемого файла всегда когда идет к нему обращение. Его применяешь, например в цикле for ($i = 0; $i < 5; $i++) { inсludе ("print.php"); } print.php <? print $i."<br>"; ?> ---- 0 1 2 3 4 ---- require_once в принципе делает вызов только один раз. Т.е. если подключаемый файл уже один раз был где-то подключен, то подключение игнорируется. Где используется. Например, у меня есть 2 скрипта (1.php и 2.php), для работы которых нужно подключение библиоте функций. <? require_once "functions.php"; ... Но есть тонкость: первый файл включает в себя и второй: ... inсludе "2.php"; ... вот в этом случае во втором файле require_once не выполнится - библиотека уже подключена. Таким образом тебя избавляют от ошибок class/function redeclare. |
Ильдар 2 - 01.03.2004 - 18:27 | Тогда может вообще всегда использовать require_once?? Если файл еще не подключен - он его подключит, или в этом случае не будет работать первый пример и будет выводить 0 0 0 0, т.к. после первого подключения он больше не будет к нему обращаться? Или как?? Не могу понять зачем нужен inсludе.. |
Zeratul 3 - 01.03.2004 - 18:34 |
хм... вообще не могу тебе объяснить когда я использую инклюду, а когда require. Одним местом что ли чую... Это ощущение типа хочешь ты жениться на своей девушке или нет :) ЗЫ. Я женат. |
DIVЕR 4 - 01.03.2004 - 19:03 |
Про чувство Zeratul правильно написал =)))) Я обычно делаю так: основные скрипты (например, аутентификация, скрипты с необходимыми функциями и т.д. без которых немыслимо дальнейшее выполнение программы) я подключаю в начале c помощью require(). . The two constructs are identical in every way except how they handle failure. inсludе() produces a Warning while require() results in a Fatal Error. In other words, use require() if you want a missing file to halt processing of the page. inсludе() does not behave this way, the script will continue regardless. Be sure to have an appropriate inсludе_path setting as well. . Перевести? . А ещё вот у меня вопросик: если require() стоит внутри условия, то будет ли оно включено в_любом_случае? (так сказать, на этапе анализа кода, а не выполнения) В противоположность inсludе(), которое будет выполнено только если это необходимо??.. Просто по-моему, я где-то читал про это, и если моё воображение не сильно разыгралось %))) то require() по идее должно выполняться быстрее..... Или нет?........ |
Mips 5 - 02.03.2004 - 08:35 | Unlike inсludе(), require() will always read in the target file, even if the line it's on never ехесutes. If you want to conditionally inсludе a file, use inсludе(). The conditional statement won't affect the require(). However, if the line on which the require() occurs is not ехесuted, neither will any of the code in the target file be ехесuted. |
hotspa 6 - 21.03.2004 - 15:15 |
inсludе и require выполняют в принципе одну функцию, но они по разному реагируют на ошибки в подключаемых файлах если в подключаемом файле парсер найдет ошибку, то при подключении с помощью require парсер выдаст сообщение об ошибке и прекратит выполнение подключаемого скрипта, inсludе просто скажет об ошибке, но продолжит выполнение скрипта |