require("file.php");
require_once("file.php");
Оба включают в себя необходимые файлы и выдают фатальную ошибку, если файл не найден или существует какая-либо другая проблема. Оба останавливают выполнение при возникновении ошибки.
в чем разница между этими двумя функциями?
Возможный дубликат В чем разница между require, include, require_once и include_once?
Оператор require_once () идентичен оператору require (), за исключением того, что PHP будет проверять, был ли файл уже включен, и если да, не включать (требовать) его снова.
Include позволит скрипту продолжить работу (с предупреждением), если файл отсутствует.
При отсутствии Require произойдет сбой.
Если вы используете include для вещей, которые на 100% необязательны, тогда include все равно будет работать, а require взорвется.
Если вы включите что-то, что, по вашему мнению, является необязательным, но какой-то другой фрагмент вашего сценария использует это, то ваш сценарий взорвется там, и вы, вероятно, не поймете, почему.
Это не лучший способ писать программы.
В остальном разницы между ними нет.
При обычном использовании не имеет значения, используете ли вы include
или require
в 95% случаев.
Таким образом, вы должны придерживаться require
(или require_once
), чтобы сообщить вам, когда вам не хватает нужного файла.
Ошибки, возникающие из-за включения файлов внутри включенных файлов, во включенные файлы, когда отсутствует одно из включенных в начало, очень сложно отследить.
Некоторые люди предпочитают include
, потому что хотят использовать эту «функцию» .
Дуглас Крокфорд больше занимается JavaScript / Java / C++, чем PHP, но он предлагает избегать функций, которые выглядят как ошибки, или побочных эффектов, неотличимых от ошибок, для вашего здравомыслия.
Имейте в виду, что если весь ваш проект полностью основан на классах (или функционален) и полностью модулен, то вам не следует много использовать для включения, кроме, скажем, сброса значений в объекте конфигурации при инициализации приложения (включая admin- параметры переопределения или параметры отладки разработчика) для объекта, который уже был require
d.
Как вы могли догадаться, есть и другие способы сделать это.
И это всего лишь предложения, но предложения, которые исходят от людей, которые умнее меня, с многолетним опытом работы на десятках языков. ССЫЛКА: Разница между "включать" и "требовать" в php
Вы читали документация
require_once
?