Является ли php 'include' функцией или выражением?
В Интернете есть много примеров. В руководстве php говорится: "Утверждение include() [...]", что кажется противоречивым - если это утверждение не должно иметь скобки?
Обе эти работы:
include('somefile.php');
include 'somefile.php;
Так должен ли я или кто-нибудь еще заботиться?
Ответы
Ответ 1
Цитата из руководства (мой акцент)
Потому что include() представляет собой конструкцию специального языка , круглые скобки не, необходимые для его аргумента.
Они также называются "специальными формами" и включают в себя такие вещи, как echo
и return
. Обратите внимание, что хотя ни одна из этих функций не является функцией, вы все равно можете говорить о выражениях и утверждениях, причем разница между ними имеет значение, а последнее - нет. Поскольку include
, include_once
, require
и require_once
все возвращают значение (TRUE
, если включение было успешным), они могут использоваться в выражениях. По этим соображениям, "include statement" был бы неправильным, хотя include
почти всегда используются в качестве операторов.
Ответ 2
include - это утверждение:
Объясните, например:
// won't work, evaluated as include(('vars.php') == 'OK'), i.e. include('')
if (include('vars.php') == 'OK') {
echo 'OK';
}
// works
if ((include 'vars.php') == 'OK') {
echo 'OK';
}
Ответ 3
Скобки - это параметры для функции.
С помощью include
вы можете использовать его либо как функцию, либо инструкцию в php.
Потому что include() - специальная языковая конструкция, скобки не необходимо вокруг его аргумента.
Документация здесь: http://php.net/manual/en/function.include.php
С echo
тем же понятием, цитируя из руководства PHP здесь
echo на самом деле не функция (это языковая конструкция), поэтому вы не требуется , чтобы использовать в нем круглые скобки. эхо (в отличие от других языковые конструкции) не ведет себя как функция, поэтому не может всегда используется в контексте функции.
Ответ 4
Одиночные значения в пределах parens оценивают само значение, поэтому сами parens не имеют никакого значения.
Ответ 5
И. Во многих областях документации PHP все называется оператором. Пример (из структур управления) - "Оператором может быть назначение, вызов функции, цикл, условный оператор или даже оператор, который ничего не делает (пустой оператор)."
Разница между утверждением и функциями - это вопрос семантики отдельного языка. Таким образом, разработчики PHP должны либо явно определить это, либо оставить его неопределенным.
Ответ 6
include
, require
, echo
, print
, а несколько других ключевых слов - это языковые конструкции сами по себе, а не вызовы функций и не нуждаются в круглых скобках. Однако некоторым людям нравится притворяться, что они являются функциональными вызовами и в любом случае используют круглые скобки. Они идентичны.
Ответ 7
для эха всегда используйте эхо-тест
<?php
// this will give you error
echo ("test","test");
//that will work fine
echo "test","test";
?>
Ответ 8
Заявления, имеющие только один параметр, могут иметь также скобки, например:
echo ('hello world');
Ответ 9
Я считаю, что единственное различие - это то, что вы хотите сделать.
Например, эти два
echo 'Hello World';
echo ('Hello World');
... оба печатают Hello World.
Это то, что вы хотите сделать, с чем вам больше всего нравится, и если вы похожи на меня, вы хотите, чтобы ваш script выглядел красиво: D