我正在处理一个我没写过但不能改变的类的对象。这个类有很多属性。我想循环使用这些属性中的大约一半(选择组)。我将nescessary属性的名称放入一个数组中,并想循环遍历它们。这可能吗?语法是什么样的?
class B{
public $foo = 'hi';
public $bar = 'bye';
...etc, etc.
}
$arr = array(1=>'foo', 2=>'bar', ...)
$b = new B();
foreach($arr as $val){
echo $b->($val); //<-----does not work
}
答案 0 :(得分:5)
是的,你可以。请参阅手册:http://php.net/manual/en/language.variables.variable.php
<?php
class foo {
var $bar = 'I am bar.';
}
$foo = new foo();
$bar = 'bar';
$baz = array('foo', 'bar', 'baz', 'quux');
echo $foo->$bar . "\n";
echo $foo->$baz[1] . "\n";
?>
以上示例将输出:
I am bar.
I am bar
答案 1 :(得分:1)
答案 2 :(得分:1)
你很亲密:
$b->$val; //Or...
$b->{$val};
答案 3 :(得分:0)
你可以循环遍历每个变量:
$b= new B();
foreach($b as $var => $value) {
echo "$var is $value\n";
}