我正在制作一个类,我希望能够自动分配从ajax请求发布的变量。
function assign_vars() {
foreach($_POST as $index => $value) {
if($index == 'car_year') {
$this->car_year = $value;
}
}
}
考虑以下设置:
class ClassName
{
/* Init with default values. */
protected $_vars = array(
'car_year' => null
, ...
);
public function assign_vars( $array )
{
$this->_vars =
array_merge($this->_vars, array_intersect_key($array, $this->_vars));
}
}
$obj = new ClassName();
$obj->assign_vars($_POST);
在assign_vars()
中,array_merge()
将覆盖$_vars
中的值,但仅当它们已经存在时(多亏了array_intersect_key()
)。
Try with:
function assign_vars() {
foreach($_POST as $index => $value) {
$this->$index = $value;
}
}
然而,你走的路看起来像是没有经过深思熟虑的解决方案。