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

PHP return (value); vs возвращаемое значение;

Есть ли разница между return($var); и return $var; другими, а затем завертывание в круглые скобки?

4b9b3361

Ответ 1

Если вы не возвращаетесь по ссылке, они означают одно и то же. Предпочтительно исключать круглые скобки. Из документы:

Примечание. Обратите внимание: поскольку return() - это языковая конструкция, а не функция, скобки, окружающие ее аргументы, не требуются. Обычно их оставляют, и вы на самом деле должны это делать, поскольку PHP в этом случае меньше работы.

Примечание. Вы не должны использовать круглые скобки вокруг возвращаемой переменной при возврате по ссылке, так как это не сработает. Вы можете возвращать переменные только по ссылке, а не по результату инструкции. Если вы используете return ($a); то вы не возвращаете переменную, а результат выражения ($a) (что, конечно же, имеет значение $a).

Ответ 2

Из Руководство PHP:

"Вы не должны использовать круглые скобки вокруг возвращаемой переменной при возврате по ссылке, так как это не сработает. Вы можете возвращать переменные только по ссылке, а не по результату инструкции. Если вы используете return ($ a), то вы 'не возвращать переменную, а результат выражения ($ a) (что, конечно, имеет значение $a).

Edit: Это означает, что существует разница между return($var) и return $var. В частности, первый будет возвращать значение $var, а последний вернет сам $var.

Ответ 3

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

Вы должны никогда не использовать круглые скобки вокруг возвращаемой переменной при возврате по ссылке, так как это не сработает. Вы можете возвращать переменные только по ссылке, а не по результату инструкции. Если вы используете return ($ a); то вы не возвращаете переменную, а результат выражения ($ a) (это, конечно же, значение $a).

(Источник)

Ответ 4

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

return array($val,$valb);

Этот пример отличается от вашего начального вопроса, однако это единственный экземпляр, где, как мне кажется, требуется скобка.

Ответ 5

Да. Если вы используете скобки, это станет выражением, которое PHP должен будет решить первым, что является пустой тратой нескольких циклов процессора. Кроме того, вы не можете вернуться по ссылке с помощью return($var);, только используя return $var;

Все это четко указано в руководстве.

Ответ 6

Это языковая конструкция, а не функция, поэтому обе работают почти одинаково. Есть два отличия. Цитирование php.net:

Если параметр не задан, круглые скобки должны быть опущены и NULL будут возвращены. Вызов return() с круглыми скобками, но без аргументов приведет к ошибке синтаксического анализа.

и

Вы никогда не должны использовать круглые скобки вокруг вашей возвращаемой переменной, когда возвращаясь по ссылке, поскольку это будет не работа. Вы можете вернуться только переменные по ссылке, а не результат заявления. Если вы используете возврат ($ А); то вы не возвращаете переменная, но результат выражение ($ a) (что, конечно, значение $a).

Источник: php.net