我試圖從php5中的類中獲取數據,其中類中的數據是私有的,調用函數正在請求類中的一段數據。我希望能夠在不使用case語句的情況下從私有變量中獲取特定的數據。從類動態選取變量
我想要做的東西的影響:
public function get_data($field)
{
return $this->(variable with name passed in $field, i.e. name);
}
我試圖從php5中的類中獲取數據,其中類中的數據是私有的,調用函數正在請求類中的一段數據。我希望能夠在不使用case語句的情況下從私有變量中獲取特定的數據。從類動態選取變量
我想要做的東西的影響:
public function get_data($field)
{
return $this->(variable with name passed in $field, i.e. name);
}
你可以只使用
class Muffin
{
private $_colour = 'red';
public function get_data($field)
{
return $this->$field;
}
}
然後,你可以這樣做:
$a = new Muffin();
var_dump($a->get_data('_colour'));
<?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;
?>
我會小心這類代碼,因爲它可能允許暴露類的內部數據太多。
謝謝。我也會研究__get。 – JustJon 2010-01-31 02:49:31
很酷。謝謝。不知道那會起作用。 – JustJon 2010-01-31 02:49:14