[PHP-users 20691]クラス内での可変変数の配列について

tosimizu yosinaka tosibe @ mb.neweb.ne.jp
2004年 3月 9日 (火) 11:02:06 JST


はじめまして、LF-SMARTといいます。

サーバー環境
FedoraCore1.0
PHP4.3.4
Postgres7.4.1
Apache1.3.9
クライアントはIE6.0

以上の環境で、あるクラスを作り動作させています。
今回、よくわからない現象にあって悩んでいます。
クラス内で配列の可変変数を扱っているのですが、アクセスするとエラー表示も
なく、ブラウザはサーバーが見つかりませんと返してきます。

以下がそのコードです。
-----class.php--------
    function getQryVars($db,$sql,$colAry) {
        $this->colVars = $this->getQryData($db,$sql,$colAry);
        if(!$this->colVars) return FALSE;
        foreach($colAry as $val) {
            foreach($this->colVars[$val] as $key=>$dataVal) {
                global $$val;
                ${$val}[$key] = $dataVal; ←ここが問題?
            }
        }
        return TRUE;
    }
----ここまで----------

引数の$colAryにはDBのフィールド名を配列で入れてます。そしてgetQryDataメ
ソッドでDBのデータを多次元配列で$colVarsに代入しています。ここまでは問題
なく動作しています。
それを$フィールド名[$i]などで即アクセスできるようにと考えたのですが、上
記のようにエラーも返してくれません。

試しにDBから返ってくるデータが1行の場合、問題の部分を

${$val}[$key] = $dataVal → $$val = $dataVal

にすると正常に動作します。配列でない場合は問題ないのですが、原因が全くつ
かめません。問題の行をコメントアウトすると仕事はしませんがエラーも起こり
ません。なにか見落としているのでしょうか。よろしくお願いいたします。

/***************************************
 LF-SMART    <tosibe @ lfsmart.itbdns.com>
***************************************/



PHP-users メーリングリストの案内