Может ли кто-нибудь сказать мне, как использовать переменные переменные в классах:
<?php
class test
{
// set default values;
private $type = '';
private $var = array();
public function __construct()
{
// add element to array
$this->var[] = 'abc';
// set $type to make it dynamically accessible
$this->type = 'var';
}
public function bar()
{
// return variable $var;
return $this->$type; // should give array([0]=>'abc') BUT give 'Undefined variable: type' and 'Cannot access empty property';
}
}
$class = new test;
var_dump($class->bar());
?>
Так $this->type
должен быть динамически и возвращать «значение» своего имени, в данном случае это было значение «var», которое является переменной со значениемarray(...)
».
Это должно работать для вас:
(type
это также свойство класса, поэтому вы должны использовать $this
)
return $this->{$this->type};
выход:
Array ( [0] => abc )
РЕДАКТИРОВАТЬ:
Вы можете прочитать больше о том, почему я использовал {}
в руководстве здесь: http://php.net/manual/en/language.variables.variable.php
когда вы обращаетесь к переменной, определенной внутри любой функции класса
Сделай это:
$this->variable_name
без $
не так
$this->$variable_name