[PHP-users 759] 可変変数? と配列、関数

Osamu Shigematsu php-users@php.gr.jp
Thu, 19 Jul 2001 11:35:44 +0900


重松と申します。

可変変数、というのでしょうか、$$ というふうに変数の前に記述する構文ですが、
ちょっと理解不能な症状で困っています。

<?php

print "test<br>";

$x = "em_report";

$$x = array(1=>"Hello",2=>"world");

print $$x[2] . "<br>";

?>

というコードを実行したのですが、私は、「world」を期待するのですが、どうもそ
のように動きません。

test
/usr/local/apache/bin/httpd

という結果になります。

function my_func($v){
    print $v;
}

$func = "my_func";
$$func("Hello");

も動きません。クラスのメソッドは同じようにして呼ぶことができます。
# これは、call_user_function を使って解決できました。

何か根本的に誤解しているのでしょうか?

http://www.php.net/manual/ja/language.variables.variable.php

には特にヒントはないようでした。

PHP のバージョンは、3.0.15 です。

-- 
Osamu Shigematsu

http://www.ravi.ne.jp/
mailto:shige@ravi.ne.jp