[PHP-users 25820] Re: クラスに配列を渡す
Yoshihiro Hanahara
hanahara @ meiko.co.jp
2005年 6月 13日 (月) 19:48:03 JST
花原@明宏です。
On Mon, 13 Jun 2005 19:17:37 +0900
Tybalt of Capulet <ice-man @ tomato.ne.jp> wrote:
> function B() {
> foreach ( $this->$id as $idval ) {
> // ここに処理
> }
> }
foreach文の「 $this->$id 」は 「 $this->id 」ではないでしょうか?
idの前の「$」を取ります。
PHPのハマリやすい注意点ですね。
元のコードでも、以下のようにすれば動きますが、
function B() {
$id = 'id';
foreach ( $this->$id as $idval ) {
// ここに処理
}
}
そゆことではないですよね(^_^;)。
PHPは名前と変数・関数・メソッド名などを実行時動的バインディングしてるっ
てことですね。以下、その例。
$x = 'B';
$c->$x(); // $c->B()と同じ。
確認は、PHP4.3.11でした。
---
Yoshihiro Hanahara <hanahara @ meiko . co . jp>
PHP-users メーリングリストの案内