如何在$this中使用返回变量


How to use a return variable in a $this

我有一个子类,它包含getDbIDFieldName。函数的目的是返回当前模型主键的实际变量名。

public function getDbIdFieldName(){ return "permission_id"; }

在主类BaseModel中,我有以下函数setId和getId。我目前正在尝试使用这些函数来设置/获取子类的主键。

示例:

public function setId($id)
{
    $this->strVal($this->getDbIdFieldName()) = $id;
}

问题是这是无效的。我尝试了很多东西,但似乎都想不通。

如果我理解正确,你可以使用一个临时变量:

public function setId($id) {
    $tmp = $this->getDbIdFieldName();
    $this->{$tmp} = $id;
}

请参阅此处的示例。