переменная php имя переменной в классе

Может ли кто-нибудь сказать мне, как использовать переменные переменные в классах:

    <?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(...)».

-1

Решение

Это должно работать для вас:

(type это также свойство класса, поэтому вы должны использовать $this)

return $this->{$this->type};

выход:

Array ( [0] => abc )

РЕДАКТИРОВАТЬ:

Вы можете прочитать больше о том, почему я использовал {} в руководстве здесь: http://php.net/manual/en/language.variables.variable.php

1

Другие решения

когда вы обращаетесь к переменной, определенной внутри любой функции класса
Сделай это:

$this->variable_name

без $

не так

$this->$variable_name
0

По вопросам рекламы [email protected]