【发布时间】:2014-10-24 13:49:49
【问题描述】:
如何实现这种功能:
- 填充实体,例如。
Member有数据 - 将
Member与$form->bind($member)绑定到私有属性_formData - 然后在 $form 中做一些事情,例如。
$form->validate()和_formData -
$member也应该随着_formData的变化而变化。class Form { private $_formData; function bind1(&$row) { // this change member outside $row['full_name'] = $row['first_name'] . ' ' . $row['last_name']; } function bind2(&$row) { $this->_formData = $row; // this will not change memeber $this->_formData['full_name'] = $this->_formData['first_name'] . ' ' . $this->_formData['last_name']; } } $member = array('full_name' => null, 'first_name'=>'Fn', 'last_name' => 'Ln'); $form = new Form(); $form->bind1($member); var_dump($member['full_name']); // output: 'FnLn' $form->bind2($member); var_dump($member['full_name']); // output: null
方法 validate 与私有 _fieldData 一起工作,所以这个工作 bind2 测试应该工作。
【问题讨论】:
标签: php pass-by-reference