Есть ли разница между return($var);
и return $var;
другими, а затем завертывание в круглые скобки?
PHP return (value); vs возвращаемое значение;
Ответ 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