0

我有一个带有 id、关键字和值的类。我正在使用从名为 Setting 的表中获取数据到类 Setting 中

if ($stmt->execute()) {
  $o = $stmt->fetchAll(PDO::FETCH_CLASS | PDO::FETCH_PROPS_LATE, "Setting", array('id', 'keyword','value'));
}

当我查看 $o 的内容时,我看到以下内容

Array ( [0] => Setting Object ( [id] => id [keyword] => keyword [value] => value [Id] => 1 [Keyword] => AdminMail [Value] => yahoo@yahoo.com ))

我的课看起来像这样

class Setting {
var $id;
var $keyword;
var $value;

function __construct($id,$ke,$va) {
    $this->id = $id;
    $this->keyword = $ke;
    $this->value = $va;
}

public function getKeyword() {
    return $this->keyword;
}

public function getValue() {
    return $this->value;
}
}

我希望 $o->getValue 返回 yahoo@yahoo.com 但它返回值。

有人能告诉我为什么“[id] => id [keyword] =>keyword [value] => value”出现在我的表的实际输出之前吗?

4

1 回答 1

0

我不知道,为什么这种棘手的语法糖如此吸引人。
它比这样简单、简单和易读的代码要好得多:

function __construct($init) {
    $this->id      = $init['id'];
    $this->keyword = $init['ke'];
    $this->value   = $init['va'];
}
...
$stmt->execute();
$o = new Settings($stmt->fetchAll());
于 2013-10-13T16:50:10.143 回答