У меня есть этот код, где у меня есть объект Dog, который расширяет Animal.
Когда я использую интерполяцию строк в классе Dog для доступа к методу в классе Animal, у меня возникают проблемы, но когда я просто объединяюсь, все идет хорошо. Why²
Пример кода:
<?php
class Animal
{
private $name;
public function getName():string
{
return $this->name;
}
public function setName($value)
{
$this->name=$value;
}
}
class Dog extends Animal
{
public function Walk()
{
echo $this->getName() ." is walking."; //This line works
echo "$this->getName() is walking."; //This line throws the exception Notice: Undefined property: Dog::$getName in C:\xampp\htdocs\stackoverflow\question1\sample.php on line 27 () is walking.
}
}
$dog = new Dog();
$dog->setName("Snoopy");
$dog->Walk();
?>
Окружить вызов функции скобками:
class Dog extends Animal
{
public function Walk()
{
echo $this->getName() ." is walking.";
echo "{$this->getName()} is walking.";
}
}
Других решений пока нет …