0

Drupal db_query の結果セット アンパック関数をさまざまなクエリのコードで何度も再利用します。OO を使用しているため、再利用してできるだけ「DRY」にしたいと考えています。

したがって、$columns提供された がクエリで使用される列と一致し、同様$resultset$rows[].

変数の値を変数名 ( ) として使用しようとする問題にまだ遭遇していません$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 に答える