Подтвердить что ты не робот

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

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

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

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

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

4b9b3361

Ответ 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