しつこくPHPのクサレ独特の仕様についてのエントリ。だって予想外の動作ばっかりなんですもの。 できそこない変数が文字列として解釈されるワケ 昨日のエントリの「$を付け忘れた変数が文字列として解釈される」についてだが、k_37to氏のはてブコメントに解説があった。 この場合「ijk」は定数としてパースされ、定数が存在しない場合は定数名の文字列として変換される。PHPのはまりやすい罠。 定数か! 普段は慣習的に定数を大文字で記述してるので見落としていたが、なるほど定数名は定義上先頭に「$」が付かないこと以外は変数と同じだ。 そんで、マニュアルの「定数」の項を確認すると確かに 未定義の定数を使用した場合、ちょうどstringとして コールしたかのように(CONSTANT vs "CONSTANT")、 PHPはその定数自体の名前を使用したと仮定します。 と書いてある。これで納得。つか、未定義の定