Как правильно использовать методы и атрибуты классов PHP? Начал изучать ООП в ракурсе PHP и споткнулся на первых же шагах. В чем я собственно не прав в данном примере?$myTestVar; } } $a = new ClassName(); $a->readVar(); ?>
Валидатор говорит :PHP Notice: Undefined variable: myTestVar in ~/.../test.php on line 13 PHP Fatal error: Cannot access empty property in ~/.../test.php on line 13 Проблема в коде или с валидатором?update...myTestVar = 0; } function readVar() { echo $this->$myTestVar; } } $a = new ClassName(); $a->readVar(); ?>
Исход тот-же.
Проблема в данном случае заключается в том, что вы обращаетесь к переменной $myTestVar как к свойству класса с помощью оператора ->, но забываете добавить знак доллара $ перед именем переменной в методе readVar().
Исправленный пример:
class ClassName { public $myTestVar; public function __construct() { $this->myTestVar = 0; } function readVar() { echo $this->myTestVar; } } $a = new ClassName(); $a->readVar();
Теперь код должен работать правильно, и вы увидите вывод 0 после исправления данной ошибки.
Проблема в данном случае заключается в том, что вы обращаетесь к переменной $myTestVar как к свойству класса с помощью оператора ->, но забываете добавить знак доллара $ перед именем переменной в методе readVar().
Исправленный пример:
class ClassName{
public $myTestVar;
public function __construct()
{
$this->myTestVar = 0;
}
function readVar() {
echo $this->myTestVar;
}
}
$a = new ClassName();
$a->readVar();
Теперь код должен работать правильно, и вы увидите вывод 0 после исправления данной ошибки.