我试图找出迭代对象属性的最佳方法,这样我就可以为插入或更新构建一个sql查询。我也希望能够省略迭代中的某些字段。
下面是一个示例对象,我想获取名称和年龄,但省略雇主,因为这是来自另一个表的连接。
class person
{
private $_name, $_age, $_employer;
public function get_name()
{
return $this->_name;
}
public function get_age()
{
return $this->_age;
}
public function get_employer()
{
return $this->_employer;
}
}
我可以将一个对象转换为数组以获取属性,但我仍然没有很好的方法来省略某些属性。
$personObj = new person();
foreach((array)$personObj as $k => $v)
{
$sql .= "...";
}
答案 0 :(得分:3)
希望这会给你一个提示
class person
{
private $_name = 'dude';
private $_age = '27';
private $_employer = 'yes';
public function get_name()
{
return $this->_name;
}
public function get_age()
{
return $this->_age;
}
public function get_employer()
{
return $this->_employer;
}
}
$person = new person();
$required = array('name','age');
foreach($required as $req)
{
$func = "get_{$req}";
echo $person->$func();
}