PHP 提取到类变量中

  • 本文关键字:类变量 提取 PHP php
  • 更新时间 :
  • 英文 :


我正在使用PHP 5.3和extract()函数。

下面是我正在构建的一个类的简单示例:

private api_username;
private api_password;
private api_signature;
private version = '63.0';
public function __construct($credentials) {
    extract($credentials);
    $this->api_username = $api_username;
}

问题是在提取之后,我必须逐个浏览变量并将它们分配给类变量。

有没有办法直接提取到类变量,这样我就不必逐项分配?

如果 $credentials 数组的键与私有变量的名称完全匹配,则可以使用变量变量来完成此操作(使用键作为变量)。

public function __construct($credentials) {
    foreach($credentials as $key => $value) {
        $this->$key = $value;
    }
}

但是,请确保您传入的数组具有正确的键。

这样做可能不安全,您使用的方法与大多数公认的模型背道而驰,但是:

foreach ( $credentials as $key => $value ) {
    if ( property_exists($this,$key) ) {
        $this->$key = $value;
    }
}

你可以试试这个:

extract($credentials, EXTR_REFS);
foreach ($credentials as $key => $value) {
      $this->$key = $$key;
}

最新更新