php Простое объявление Класса. Откуда берутся Warning?

Рейтинг: -1Ответов: 1Опубликовано: 02.03.2023

Объясните, пожалуйста, есть вот такой элементарный код создания класса

<?php

class Person {
    public $name;
    public $age;
    
    public function sayHi(){
        echo "Hello, my name is ". $this->$name . " and I'm ". $this->$age ."yars old";
    }
}

$person = new Person();
$person->name = "Alex";
$person->age = 19;

$person->sayHi();

Почему и как избавиться от Warning при компиляции кода?

Ответы

▲ 1Принят

Дам простой пример.

$this->$name означает, что вы хотите обратиться к полю объекта с помощью какой-то локальной переменной. Например:

$name = 'user';
echo $this->$name

это будет то же самое, если

echo $this->user

Но у вас в методе sayHi нет ни $name, ни $age