Строка: result = result * i
должна быть отступом (это тело цикла for).
Или - у вас есть смешанное пространство и символы табуляции
Есть require
и include_once
.
Итак, ваш вопрос должен быть ...
require
vs. include
? require_once
vs . require
Ответ на 1 описан здесь .
Функция require () идентична функции include (), за исключением того, что она по-другому обрабатывает ошибки. В случае ошибки функция include () выдает предупреждение, но скрипт продолжит выполнение. Require () генерирует фатальную ошибку, и сценарий останавливается.
Ответ на 2 можно найти здесь .
Оператор require_once () идентичен оператору require (), за исключением того, что PHP будет проверять, был ли файл уже включен, и если да, не включать (требовать) его снова.
Разница между функциями _once и функциями без _once: без кода _once будет снова включен, тогда как с функциями _once PHP отслеживает включенные файлы и будет включать их только один раз.
Разница между require и include: Если требуемый файл не найден, PHP выдаст фатальную ошибку, тогда как для include будет выдано только предупреждение.
Используйте
require
, когда файл требуется вашим приложением, например шаблон важного сообщения или файл, содержащий переменные конфигурации, без которых приложение не работает.
require_once
, когда файл содержит контент, который может вызвать ошибку при последующем включении, например
function important () {/ * important code * /}
определенно необходим в вашем приложении, но, поскольку функции не могут быть повторно объявлены, не следует включать их снова.
включить
, когда файл не требуется, и поток приложения должен продолжаться, если он не найден, например
отлично подходит для шаблонов, ссылающихся на переменные из текущей области или что-то
include_once
необязательные зависимости, которые могут вызвать ошибки при последующей загрузке или, возможно, удаленное включение файла, которое вы не хотите повторять дважды из-за накладные расходы HTTP
Но в основном вам решать, когда использовать.
Требовать критически важных частей, таких как авторизация, и включать все остальные.
Множественное включение - это просто очень плохой дизайн, и его следует вообще избегать. Итак, * _once на самом деле не имеет значения.
Используйте «включить» для многоразовых шаблонов PHP . Используйте "require" для необходимых библиотек.
"* _ once" - это хорошо, потому что проверяет, загружен ли файл уже или нет, но для меня это имеет смысл только в "require_once".
Разница в ошибке, которую генерируют команды. С require
файл, который вы хотите использовать, действительно требуется и поэтому генерирует E_ERROR
, если он не найден.
require ()
идентиченinclude ()
, за исключением того, что в случае сбоя он также вызывает фатальную ошибку уровняE_ERROR
.
include
генерирует ошибку E_WARNING
только в случае сбоя, что более или менее тихо.
Поэтому используйте его, если файл требуется для работы оставшегося кода, и вы хотите, чтобы сценарий завершился ошибкой, файл недоступен.
Для * _ once ()
:
include_once ()
может использоваться в случаях, когда один и тот же файл может быть включен и оценен более одного раза во время конкретного выполнения сценария, поэтому в этом случае это может помочь избежать таких проблем, как переопределение функций, переопределение значений переменных и т. д.
То же самое, конечно, относится к require_once ()
.
Ссылка: require ()
, include_once ()
При использовании require файл должен существовать, если это не так, то будет выдана ошибка; в то время как при использовании include - если файл не существует, то страница продолжит загрузку.
Я предлагаю просто использовать require_once
99,9% времени.
Использование require
или include
вместо этого подразумевает, что ваш код не может быть повторно использован в другом месте, т.е. что скрипты, которые вы притягиваете, на самом деле выполняют код, а не делают доступными класс или некоторые библиотеки функций.
Если вы требуете/включаете код, который выполняется на месте, это процедурный код, и вам нужно познакомиться с новой парадигмой. Например, объектно-ориентированное программирование, программирование на основе функций или функциональное программирование.
Если вы уже занимаетесь ОО или функциональным программированием, то использование include_once
будет в основном откладыванием того, где в стеке вы найдете ошибки/ошибки. Хотите ли вы знать, что функция do_cool_stuff()
недоступна, когда вы обратитесь к ней позже, или в тот момент, когда вы ожидаете, что она будет доступна, требуя библиотеку? Как правило, лучше сразу узнать, что что-то нужное и ожидаемое недоступно, поэтому просто используйте require_once
.
В качестве альтернативы, в современном ООП, просто автозагрузка ваших классов при использовании.