Является ли php 'include' функцией или выражением?

В Интернете есть много примеров. В руководстве php говорится: «Утверждение include () […]», что кажется противоречивым – если это утверждение не должно иметь скобки?

Обе эти работы:

include('somefile.php'); include 'somefile.php; 

Так должен я или кто-нибудь еще заботиться?

Solutions Collecting From Web of "Является ли php 'include' функцией или выражением?"

Цитата из руководства (мой акцент)

Потому что include () – специальная языковая конструкция , круглые скобки не нужны вокруг аргумента.

Они также называются «специальными формами» и включают такие вещи, как выражения echo и return . Обратите внимание, что хотя ни одна из этих функций не является функцией, вы все равно можете говорить о выражениях и утверждениях, причем разница между ними имеет значение, а последнее – нет. Поскольку include , include_once , require и require_once все возвращают значение ( TRUE если включение было успешным), они могут использоваться в выражениях. По этим соображениям «include statement» будет неверным, хотя include s почти всегда используются в качестве операторов.

include – это заявление: Объясните, например:

 // won't work, evaluated as include(('vars.php') == 'OK'), ie include('') if (include('vars.php') == 'OK') { echo 'OK'; } // works if ((include 'vars.php') == 'OK') { echo 'OK'; } 

Скобки – это параметры для функции. С include вы можете использовать его либо как функцию, либо заявление в php.

Потому что include () – специальная языковая конструкция, круглые скобки не нужны вокруг аргумента.

Документация здесь: http://php.net/manual/en/function.include.php

С echo такой же концепцией, цитируя из руководства PHP здесь

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

Единичные значения в пределах parens оценивают значение самого значения, поэтому сами parens не имеют никакого значения.

И то и другое. Во многих областях документации PHP все называется оператором. Пример (из структур управления) – «Оператором может быть назначение, вызов функции, цикл, условный оператор или даже оператор, который ничего не делает (пустой оператор)».

Разница между утверждением и функциями – это вопрос семантики отдельного языка. Таким образом, разработчики PHP должны либо явно определить это, либо позволить ему оставаться неоднозначным.

include , require , echo , print и несколько других ключевых слов – это языковые конструкции сами по себе, а не вызовы функций и не требуют скобок. Однако некоторым людям нравится притворяться, что они являются функциональными вызовами и в любом случае используют круглые скобки. Они идентичны.

для эха всегда используйте echo "test"

 <?php // this will give you error echo ("test","test"); //that will work fine echo "test","test"; ?> 

Выражения, имеющие только один параметр, могут иметь также скобки, например:

 echo ('hello world'); 

Я считаю, что единственное различие – это то, что вы хотите сделать.

Например, эти два

 echo 'Hello World'; echo ('Hello World'); 

… оба печатают Hello World .

Это то, что вы хотите сделать, с чем вам больше всего нравится, и если вы похожи на меня, вы хотите, чтобы ваш сценарий выглядел красиво: D