タグ

ブックマーク / july-diary.hatenablog.com (1)

  • PHP の言語仕様は、ランタイムのコンパイル環境に依存します。 - JULY’s diary

    個人的には、PHP って、嫌いな言語じゃないんだけど、とかく宗教戦争に持ち込まれやすい。攻撃する側は、「言語としてなっとらん」みたいな主張が多くて、具体的にどこが? と思っていたんだけど、これほど面白い例は無い。 PHPの比較の素晴らしさ加減は正常 「16 進数の表記は整数に変換するけど、じゃぁ、8進数は」という辺りが傑作なのだが、この挙動、結構、奥が深かった。 PHPでは"0x0A"=="10"がtrue | 水無月ばけらのえび日記 上記ページを読むと、整数に変換するかどうかは、C のライブラリ関数である strtod に依存しているらしい。で、このページのコメントに書かれているように、その strtod 自体が、コンパイラがどの規格に準拠してコンパイルしたかによって、挙動が変わってしまう。C99 準拠してコンパイルすれば、16 進数の表記は整数に変換されるが、そうでなければ変換されない

    PHP の言語仕様は、ランタイムのコンパイル環境に依存します。 - JULY’s diary
  • 1