На самом деле, это уже работает. Но это плохая практика.
Обычно вы должны сделать что-то вроде этого:
class test {
private $abc;
public function foo() {
echo $this->abc;
}
public function getABC() {
return $this->abc;
}
public function setABC($abc) {
// You can also add some additionally checks
$this->abc = $abc;
}
}
Что делает:
$bar = new test;
$bar->setABC('abc');
$bar->foo();
Не забудьте сделать ваши атрибуты класса ($ а) всегда частный или защищенными. Это инкапсуляция, которая делает ООП настолько мощным.
Если вы хотите использовать динамические имена переменных, поэтому вместо $ this-> а вы хотите установить $ this-> сЬа вы должны использовать магические методы __set и __get
Подробнее о магических методах можно найти здесь:
http://php.net/manual/en/language.oop5.magic.php
Я не понимаю ваш вопрос. Вы уже устанавливаете '$ abc' в" abc ", не так ли? –
Вы пытаетесь создать динамически названную переменную в классе 'test' с ** именем ** 'abc'? – Stephen
Переменные всегда динамичны. В противном случае это будет постоянным. – JochenJung