【发布时间】:2013-05-15 09:31:49
【问题描述】:
考虑以下代码:
class Project
{
public $ProjectID;
}
class Work
{
public $WorkID;
}
public function insert($pData, $tableName)
{
//generate insert here
$pData->{$tableName . 'ID'} = $result->getId();
}
$p = new Project();
$w = new Work();
insert($w, 'Work');
insert($p, 'Project');
echo $p . ' -- ' . $w;
现在我将如何以 动态 方式设置变量?我正在构建一个数据层。 $pData->{$tableName . 'ID'} 似乎不起作用...
【问题讨论】:
-
那会是哪个变量?
-
对于
$w,它将是$w.WorkID = 7,对于$p,它将是$p.ProjectID = 7。 -
我不认为你所说的“动态”是什么意思,或者你在哪里/为什么想出这个函数 setToSeven,或者你需要用“动态”解决什么问题。
-
我会更倾向于使用interfaces 并标准化属性的名称...这样我就可以让
setToSeven()只对$object->id 进行操作,而不是使用不同的属性名字。 -
OP 希望在运行时动态创建属性(ala 反射)。可能重复:stackoverflow.com/questions/829823/…
标签: php