0

我将在我的代码中多次重用 Drupal db_query 结果集解包函数来处理各种不同的查询——我正在使用 OO,因此我想重用它并尽可能“干”。

因此,我尝试将其剥离为最通用的函数,以便只要$columns提供的与查询中使用的列相匹配,类似地$resultset,我可以循环并将值分配给键,如图所示,并返回一个$rows[].

我还没有遇到尝试将变量的值用作变量名(the $key)的问题,如果这只是我应该完全避免的事情,请说。

foreach($this->resultSet as $aRecord) {

    $c = 0;

    while (isset($this->columns[$c])) {

        $value =  $this->columns[$c];
        $rows[$i] = array(
            $key[$this->columns[$c]] => $aRecord->$value,
        );

        $c++;
    }

    $i++;
}

我已经阅读了以下内容,并开始认为这只是我迄今为止在 PHP 经验中所缺少的知识。

我可以在 PHP 中使用生成的变量名吗?

PHP使用函数返回值作为数组

https://wiki.php.net/rfc/functionarraydereferencing

4

1 回答 1

0

感觉不对,有人曾经告诉我,如果你必须开始用 PHP 编写复杂的函数,你可能已经错过了 PHP 已经提供的可用函数......非常真实......感谢(在撰写本文时......) 'MrCode' 对于这个建议。

    $this->sql = "SELECT foo, bar FROM foobar";
    $this->result = db_query($this->sql);

    if ($this->result->rowCount() > 0) {

        while ($row = $this->result->fetchAssoc()) {

            $this->resultArray[] = $row; 
        }
    }
于 2012-12-18T12:11:54.627 回答