2015-07-26 2 views
-5

я недавно узнал, что существует несколько типов include() в PHP Мой вопрос: что является различию между на следующие инструкции:различию между включают

include_once 'file.txt'; 
include 'file.txt'; 

include ('file.txt'); 
include_once ('file.txt'); 

Если file.txt не создается, что сообщение об ошибке I получить?

+0

'include_once' делает то, что он говорит. Он включает страницу один раз. Если вы позже назовете его 'include_once', он не включит его, потому что он уже включен. Другой будет включать столько раз, сколько это называется. – Rasclatt

+0

, но есть 2 подсказки из них один с() и один без, что такое разница? –

+1

Нет разницы. Предпочтение синтаксиса (по моему мнению, в любом случае. Я использую только скобки). – Rasclatt

ответ

0

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

echo "foo"; 
echo ("foo"); 

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

Обычно вы используете include, если файл выполняет какое-либо действие, например, эхо или HTML. include_once используется для файлов, которые определяют функции и классы, потому что они получат сообщение об ошибке, если вы попытаетесь переопределить их.

Если файл не существует, то вы будете получать предупреждения, как это:

Внимание: включают (file.txt): не удалось открыть поток: Нет такого файла или каталога в/путь/к /your/script.php в строке 4
Предупреждение: include(): Не удалось открыть файл file.txt для включения (include_path = '.:') в /path/to/your/script.php в строке 4

Предупреждение то же самое для include и include_once.

Существует также require и require_once. Они похожи на include и include_once, но вместо того, чтобы печатать предупреждение, если файл не существует, он печатает ошибку и останавливает скрипт.

+0

спасибо, это ответ, который я искал –

+0

Интересно, какая часть моего ответа не была объяснена в вашем учебнике или документации на php.net? – Barmar

+0

Я не мог найти сравнение бок о бок. –

Смежные вопросы