[PHP-users 23543]":"を含む変数名が使える

Shogo shogo @ studiofly.net
2004年 11月 5日 (金) 02:23:14 JST


河瀬です。

先日PHPを使ってスクリプトを書いていた際に見つけたPHPの妙な挙動の報告です。

うだうだ口で説明するよりも、以下のコードを見て頂いた方がわかりやすいかと
思います。

sample1.php
<?php

$test:test = "Hello world!!";
echo $test:test;

?>

これは当然、変数名に":"を含んでいるため

Parse error: parse error, unexpected ':' in /***/sample1.php on line 3

というエラーが発生します。しかし、以下のsample2.phpの用に可変変数を利用
するとすんなり実行されてしまうのです……。

sample2.php
<?php

$name  = "test:test";
$$name = "Hello world!!";
echo $$name;

?>

……これは仕様なのですかねぇ?色々と検索してみたのですが見つけることがで
きませんでした。既出でしたら申し訳ありません。

# でも、さすがにこれを前提にしたコーディングはまずいですよね?:-)

//---------------------------------------------------
// 河瀬 翔吾 / SHOGO KAWASE <shogo @ studiofly.net>
// studiofly.net : http://www.studiofly.net/
//--------------------------------------------------- 


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