我正在尝试从php5中的类中获取数据,其中类中的数据是私有的,并且调用函数正在从类中请求一段数据。我希望能够在不使用case语句的情况下从私有变量中获取特定的数据。
我想做点什么:
public function get_data($field)
{
return $this->(variable with name passed in $field, i.e. name);
}
答案 0 :(得分:1)
你可以使用
class Muffin
{
private $_colour = 'red';
public function get_data($field)
{
return $this->$field;
}
}
然后你可以这样做:
$a = new Muffin();
var_dump($a->get_data('_colour'));
答案 1 :(得分:0)
<?php
public function get_data($field)
{
return $this->{$field};
}
?>
您可能也希望查看神奇的__get()函数,例如:
<?php
class Foo
{
private $prop = 'bar';
public function __get($key)
{
return $this->{$key};
}
}
$foo = new Foo();
echo $foo->prop;
?>
我会小心使用这种代码,因为它可能会暴露出太多的类内部数据。