有人能告诉我如何在类中使用变量变量:
<?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(...)
'的变量。
答案 0 :(得分:1)
这应该适合你:
(type
也是一个类属性,因此您必须使用$this
)
return $this->{$this->type};
输出:
Array ( [0] => abc )
修改强>
您可以在此处阅读有关我在手册中使用{}
的原因的详情:http://php.net/manual/en/language.variables.variable.php
答案 1 :(得分:0)
当您访问在类的任何函数内定义的变量时 这样做:
$this->variable_name
没有$
不喜欢这个
$this->$variable_name