类中的php变量variablename

时间:2015-03-20 10:21:18

标签: php class variables dynamically-generated

有人能告诉我如何在类中使用变量变量:

    <?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(...)'的变量。

2 个答案:

答案 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