【发布时间】:2011-11-09 07:14:20
【问题描述】:
有没有可能有这样的构造。假设我有一个这样的数组:
$names = array ('name1', 'name2', 'name3');
$values = array ('value1', 'value2', 'value3');
然后我想做以下事情:
foreach ($names as $field) {
$this->$field = $values[$counter];
$counter ++;
}
这样以后,我可以像这样访问所述对象:
$var1 = $object->name1;
$var2 = $object->name2;
// produces "value1"
echo $var1;
// produces "value2"
echo $var2;
我想要做的是拥有一个具有动态命名字段的对象。 OO PHP 可以做到这一点吗?
【问题讨论】:
-
是的。你没试过吗?虽然上面的代码行不通,因为你需要做
foreach ($names as $k => $name) $this->$name = $values[$k]; -
@DaveRandom:代码适用于
$counter。不是我要走的路,但结果是一样的。 -
我想这个问题已经在这里回答了:stackoverflow.com/questions/829823/…
-
@webbiedave 肯定不行,除非您首先创建值为零的
$counter变量?我绝对肯定它不会在第一次迭代中工作...... -
@DaveRandom:没错。由于他只显示代码 sn-ps 我只是假设它是在循环之前初始化的。