类自动分配变量

时间:2011-10-30 19:42:47

标签: php oop

我正在上课,我希望能够自动分配从ajax请求发布的变量。

function assign_vars() {
    foreach($_POST as $index => $value) {
        if($index == 'car_year') {
            $this->car_year = $value;
        }
    }
}

这个功能非常方便,是他们这样做的一种更清洁的方式。

2 个答案:

答案 0 :(得分:0)

考虑以下设置:

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())。

答案 1 :(得分:-1)

尝试:

function assign_vars() {
    foreach($_POST as $index => $value) {
        $this->$index = $value;
    }
}

然而,你走的路看起来似乎没有考虑过解决方案。