2010-05-27 4 views

ответ

31

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

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

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

+0

Меньше работы всегда лучше, спасибо. Я предполагаю, что это относится и к «эху»? –

+1

@Josh K: Он делает (плюс, используйте запятые, а не оператор конкатенации). – webbiedave

+4

Также обратите внимание на сокращение работы для ваших бедных переработанных пальцев! – salathe

3

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

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

(Source)

1

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

Это все ясно указано в the manual.

4

От PHP Manual:

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

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

1

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

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

и

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

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

2

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

return array($val,$valb); 

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

+0

Отличная точка! –

+0

только время, которое я использую для определения быстрого возвращаемого значения: 'return ($ var? 'Yep': 'no');' но большинство раз я отбрасываю круглую скобку ' – Zack