Есть ли какая-либо разница между return($var);
и return $var;
другими, чем упаковка в скобки?PHP return (value); vs возвращаемое значение;
ответ
Если вы не возвращаетесь по ссылке, они означают одно и то же. Предпочтительно исключать круглые скобки. Из the docs:
Примечание: Обратите внимание, что поскольку
return()
языковая конструкция, а не функция, скобки, окружающие его аргументы не требуются. Обычно их оставляют, и вы на самом деле должны это делать, поскольку PHP в этом случае меньше работы.
Примечание: Вы никогда не должны использовать круглые скобки вокруг переменной возврата при возврате ссылки, так как это не будет работать. Вы можете возвращать переменные только по ссылке, а не по результату инструкции. Если вы используете
return ($a)
; то вы не возвращаете переменную, а результат выражения($a)
(что, конечно же, имеет значение$a
).
Обратите внимание, что после возвращения() является конструкцией языка, а не функция, скобки, окружающие его аргументы не требуются. Обычно их оставляют, и вы на самом деле должны это делать, поскольку PHP в этом случае меньше работы.
Вы должны никогда не использовать круглые скобки вокруг возвращаемой переменной при возврате по ссылке, так как это не сработает. Вы можете возвращать переменные только по ссылке, а не по результату инструкции. Если вы используете return ($ a); то вы не возвращаете переменную, а результат выражения ($ a) (это, конечно же, значение $ a).
(Source)
Да. Если вы используете скобки, это станет выражением, которое PHP должен будет решить первым, что является пустой тратой нескольких циклов процессора. Кроме того, вы не можете вернуться по ссылке с помощью return($var);
, только используя return $var;
Это все ясно указано в the manual.
От PHP Manual:
«Вы никогда не должны использовать круглые скобки вокруг переменного возврата при возврате ссылки, так как это не будет работать, можно возвращать только переменные по ссылке, а не результат заявления.. Если вы используете return ($ a), то вы не возвращаете переменную, а результат выражения ($ a) (что, конечно же, означает значение $ a). "
Edit: Это означает, что существует разница между return($var)
и return $var
. В частности, первый вернет значение $var
, а последний вернет $var
.
Это языковая конструкция, а не функция, поэтому оба работают почти то же самое. Есть два отличия. Цитирование php.net:
Если параметр не указан, то скобки должны быть опущены, и NULL, будут возвращены. Вызов return() с круглыми скобками, но без аргументов приведет к ошибке синтаксического анализа.
и
Вы никогда не должны использовать круглые скобки вокруг переменной возврата, когда возвращения по ссылке, так как это будет не работать. Вы можете возвращать только переменные по ссылке, а не результат заявления. Если вы используете возврат ($ a); то вы не возвращаете переменную , но результат выражения ($ a) (это, конечно, значение $ a).
Источник: php.net
Единственный раз, когда я использую круглые скобки, когда возвращаются два значения с массивом.
return array($val,$valb);
Этот пример отличается от вашего первоначального вопроса, однако это единственный случай, когда я думаю, что скобки необходимы.
Отличная точка! –
только время, которое я использую для определения быстрого возвращаемого значения: 'return ($ var? 'Yep': 'no');' но большинство раз я отбрасываю круглую скобку ' – Zack
- 1. PHP return value mystique
- 2. duplicate return value php
- 3. return value javascript UIWebView
- 4. О performSelector return value
- 5. python no value return
- 6. Return AS3.0 Int value
- 7. Return Key Value Pair
- 8. FactoryGirl to_create return value
- 9. Заглушки Groovy, def vs typed return value
- 10. php function return null value
- 11. sql php conect return value
- 12. PHP Curl Return Boolean Value
- 13. $ .post return null value
- 14. return ref type value
- 15. Array.find (value) return value 'не является функцией'
- 16. javascript form submit return value
- 17. Android AsyncTask json return value
- 18. Capture return value from python
- 19. curl return value for error
- 20. $ httpBackend return value value issue
- 21. Bash - find exec return value
- 22. Python - определение объектов Return Value
- 23. PHP неожиданное возвращаемое значение
- 24. php return two value array object
- 25. возвращаемое значение не соответствует функции return type
- 26. Return PriorityQueue value
- 27. Возвращение rvalue reference vs return by value в функции return type
- 28. List return null value
- 29. ComboBox.Selected Value return Null
- 30. bundle.getString() return null value
Меньше работы всегда лучше, спасибо. Я предполагаю, что это относится и к «эху»? –
@Josh K: Он делает (плюс, используйте запятые, а не оператор конкатенации). – webbiedave
Также обратите внимание на сокращение работы для ваших бедных переработанных пальцев! – salathe