#php
Всем добрый день, объясните, пожалуйста, смысл следующей записи. public function get_Info($name,$surname){ $this->name = $name; $this->surname = $surname; return "{$this->name}"."{$this->surname}"; } Для него нужны ковычки и фигурные скобки внутри них? Почему нельзя было просто написать return $this->name.$this->surname;
Ответы
Ответ 1
string expansion в примере вероятно приведение к строке, можно было написать return "".$this->name.$this->surname; или return "{$this->name}{$this->surname}"; хотя, конкатинация сама по себе к строке приводит, в целом смысла нет так делать здесь. вот наглядная иллюстрация:Ответ 2
ЕМНИП, это ничего не даёт, скорее наоборот, некрасиво. Это для вашего сведения конкатация строк. Пример тот что вы предоставили будет работать и без фигурных скобок. return "$this->name $this->surname"; точно так же переменные обычные return "$someVar" . "". "$this->surname"; Реальное применение скобкам рождается когда в такую строку вы захотите запихнуть что то типа return "$this->name['key']"; этот код выдаст ошибку return "{$this->name['key']}"; Опять же его можно заставить работать return "$this->name[key]"; Но тогда A: у вас не будут работать строковые ключи Б: в StrictMode у вас будут выскакивать Notice о том что Undefined Constant и бла бла блаОтвет 3
ну вообще это для задания сложных выражений. почитайте Сложный (фигурный) синтаксис Он называется сложным не потому, что труден в понимании, а потому что позволяет использовать сложные выражения. Любая скалярная переменная, элемент массива или свойство объекта, отображаемое в строку, может быть представлена в строке этим синтаксисом. Просто запишите выражение так же, как и вне строки, а затем заключите его в { и }. Поскольку { не может быть экранирован, этот синтаксис будет распознаваться только когда $ следует непосредственно за {. Используйте {\$, чтобы напечатать {$.
Комментариев нет:
Отправить комментарий