Возврат PHP (значение); по сравнению с возвращаемым значением;

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

18
задан Josh K 27 May 2010 в 14:10
поделиться

6 ответов

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

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

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

32
ответ дан 30 November 2019 в 06:59
поделиться

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

return array($val,$valb);

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

1
ответ дан 30 November 2019 в 06:59
поделиться

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

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

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

4
ответ дан 30 November 2019 в 06:59
поделиться

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

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

и

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

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

1
ответ дан 30 November 2019 в 06:59
поделиться

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

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

( Источник )

3
ответ дан 30 November 2019 в 06:59
поделиться

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

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

1
ответ дан 30 November 2019 в 06:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: