Life, Education, Death

プログラミング以外でも思ったことをつらつらと書きたい

PHPの仕様なのかバグなのか不明

サンプルコード

通らないコード

function hoge( $foo, $bar ){
    var_dump($foo, $bar );
}

通るコード

function hoge( $foo, $bar ){
    var_dump($foo, $bar );
}

PHPは通常、全角スペースがあるとパースエラーで落ちるが
残念ながら、関数の引数の宣言のあたりに全角スペースが入ると、変数名の一部として扱うようだ。
get_defined_varsを実行した結果。bar という変数名が得られた。

挙動としては、引数が消失したように見える。30分くらいはまってしまった。
全角スペースを表示する設定にいつもはしてるけど、Eclipseは全角以外も出ちゃうから、設定してなかった。

あぁ無駄な時間だった。バージョンは5.2.5