Будут ли require_once и include_once вместе включать файл дважды? - PullRequest
6 голосов
/ 07 сентября 2010

Если у меня есть это:

require_once('myfile.php');

, то позже:

include_once('myfile.php');

Будет ли файл включен снова или только один раз?

И что такоеразница между двумя?Require вызывает ошибку при сбое и включает попытки восстановления?есть другие отличия?

Ответы [ 3 ]

11 голосов
/ 07 сентября 2010

Если файл включен, он включен.

requice_once() работает точно так же, как include_once(), за исключением того, что он убивает скрипт, когда скрипт для включения не найден.

Поэтому в вашем примере скрипт включен один раз.

0 голосов
/ 11 мая 2016

Будет ли файл включен снова или только один раз?

myfile.php включается только один раз.

require_once 'myfile.php'; //included
include_once 'myfile.php'; // not included

В чем разница между этими двумя?

  • include и include_once выдают предупреждение, если не удается найти файл.

  • require и require выдаст фатальную ошибку, если не может найти файл.

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

require является идентичным для включения, за исключением того, что при сбое оно также приведет к фатальной ошибке уровня E_COMPILE_ERROR. Другими словами, он остановит скрипт, тогда как include выдает только предупреждение (E_WARNING), которое позволяет скрипту продолжить. [http://php.net/manual/en/function.require.php]

Require вызывает ошибку при сбое и включает попытки восстановления? есть другие отличия?

include позволяет восстановить да, неудачный оператор require всегда заканчивается в одну сторону, a try catch не могу даже сохранить ваш сценарий.

Стоит указать, что произойдет, если другие комбинации из четырех файлов оценочных отчетов (include, include_once, require и require).

Если файл был найден

include и require всегда будут включать файл независимо от того, использовали ли вы ранее require, include , require или include_once с тем же файлом.

include_once 'myfile.php'; //included
include 'myfile.php'; //always included
require 'myfile.php'; //always included
require_once 'myfile.php'; // not included, prevously included via [function.include_once], [function.include] and [function.require]

include_once и require будут включать файл, только если он не был ранее включен с использованием require, include, require или include_once выписка.

require 'myfile.php'; //always included
include_once 'myfile.php'; // not included, prevously included via [function.require]
0 голосов
/ 07 сентября 2010

Концептуально: include делает то, что говорит на жестяной коробке: он включает код myfile.php в код текущего файла.Require больше похож на оператор импорта в других языках программирования.

Суффикс _once означает, что PHP избегает включения / запроса файла, если он уже доступен текущему сценарию через предыдущий оператор include / require или рекурсивно через include/ Требуются операторы в других импортированных скриптах.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...