В чем разница между "include_once" и "require_once" в PHP?

В чем разница между "include_once" и "require_once" в PHP?

include_once "connect_to_mysql.php";

require_once "connect_to_mysql.php";

Есть ли разница между ними?

Ответы

Ответ 1

Include позволит script продолжать работать (с предупреждением), если файл отсутствует.

Требование будет сбой, если он отсутствует.

Если вы используете include для вещей, которые на 100% опциональны, то include все равно будет работать, и их запрос будет взорваться.

Если вы включите что-то, что, по вашему мнению, не является обязательным, но какой-то другой фрагмент вашего script использует его, по линии, тогда ваш script взорвется там, и вы, вероятно, не знаете, почему.

Это не очень хороший способ писать программы.

В противном случае между ними нет разницы.

изменить

При типичном использовании не имеет значения, хотите ли вы использовать include или require, 95% времени.

Таким образом, вы должны придерживаться require (или require_once), чтобы сообщить вам, когда вам не хватает файла, который вам нужен.

Ошибки, возникающие из-за включения файлов внутри включенных файлов, внутри входящих файлов, когда один из них содержит верхнюю часть, отсутствуют, очень трудно отслеживать.

Некоторые люди предпочитают include, потому что они хотят использовать эту "функцию".
Douglas Crockford является парнем JavaScript/Java/С++, а не PHP, но он предполагает, что для вашего здравомыслия следует избегать функций, которые выглядят как ошибки или побочные эффекты, неотличимые от ошибок.

Имейте ввиду, что если весь ваш проект полностью основан на классе (или функциональный) и полностью модульный, то вам не следует использовать его для включения, помимо, например, сброса значений объекта конфигурации при инициализации приложения ( включая параметры администратора или переопределения) для объекта, который уже был require d.

Как вы могли догадаться, есть и другие способы сделать это.

И это только предложения, но предложения, которые исходят от людей, которые умнее меня, с многолетним опытом работы на десятках языков.

Ответ 2

include_once будет вызывать предупреждение , но не остановит выполнение PHP из остальной части script.

require_once будет вызывать ошибку и остановит PHP для выполнения остальной части script.

Ответ 3

Отличие состоит в том, что require_once() приведет к фатальной ошибке при сбое, а include_once() только выдает предупреждение.

Ответ 4

page stop execute require_once не может быть загружен требуемым файлом, а с другой стороны include_once будет продолжаться вместо ошибки при загрузке, включая файл.