PHP: Упражнение для регистрации в Codewars

#php

#php

Вопрос:

Я пытаюсь решить эту проблему на веб-сайте codewars:

Исправьте этот код, чтобы greet функция возвращала ожидаемое значение.

 class Person {
  public $name;
  public function __construct($name) {
    $this->name = $name;
  }
  public function greet($guest) {
    return 'Hello $guest, my name is $name';
  }
}
  

Где ошибка?

Комментарии:

1. Если вы не можете решить хотя бы упражнение по регистрации, возможно, вам следует сначала изучить язык программирования по вашему выбору, немного попрактиковаться, а затем вернуться к codewars.

Ответ №1:

Сложный (фигурный) синтаксис работает только с двойными кавычками ""

Меняем его следующим образом:

 class Person {
  public $name;
  public function __construct($name) {
    $this->name = $name;
  }
  public function greet($guest) {
    return "Hello $guest, my name is {$this->name}";
  }

}
  

Вывод:

 $x = new Person('john');
echo $x->greet('peter');

//Hello peter, my name is john
  

Комментарии:

1. извините, правильная строка на веб-сайте: return ‘Привет, $guest, меня зовут $name’;

2. Я только что протестировал его, и он прошел тест.