Разница в способах включения файлов

166
15 марта 2018, 10:49

В чем разница include() и require(), а также include_once() и require_once()? Не могу понять.

Answer 1

https://stackoverflow.com/questions/2418473/difference-between-require-include-and-require-once Функция include вызывает предупреждение, если подключаемый файл не найден, include_once не включает файл повторно, если он уже был включен в исполняемый код. Require вызывает фатальную ошибку, если файл не найден, require_once не подключает файл повторно.

На практике разница в том, что все жизненно важные файлы должны подключаться через require/require_once - отсутствие файла сразу даст возможность отдебажить и исправить ошибку. Если на сервере включено подавление предупреждений http://php.net/manual/ru/function.error-reporting.php, а Вы подключили файл через include/include_once, то об проблеме отсутствия файла Вы узнаете только косвенно или вообще не узнаете.

Если Вы будете подключать один файл несколько раз через include или require, то будете получать фатальную ошибку вида:

Fatal error: Cannot redeclare get_raw_data_list() (previously declared in /var/www/codes/handlers/make_a_thread/get_raw_data_list.php:7) in /var/www/codes/handlers/make_a_thread/get_raw_data_list.php on line 19
Answer 2

include() и require() выполняют одну и ту же задачу - подключения нужного файла в текущий скрипт. Разница в поведении в случае ошибки подключения заданного файла. При ошибке подключения через include будет выдано предупреждение и скрипт будет выполняться дальше. А через require будет выдано критическую ошибку и скрипт прервет работу. Дописка в конце once означает что подключение файла будет один раз и если он уже был ранее подключен, тогда заново подключаться не будет

READ ALSO
Прочитать многомерный массив foreach

Прочитать многомерный массив foreach

Вычитываю JSON ответ, в нем много мерный массив, делаю это так :

239
Разные id в таблице mysql

Разные id в таблице mysql

Приветствую

212
Как создать план для платежной системы Stripe (библиотека OmniPay)?

Как создать план для платежной системы Stripe (библиотека OmniPay)?

Использую библиотеку OmniPay для платежной системы Stripe

181