2013-02-18
■[Computer] PHP言語仕様のバグ
先週の金曜にPHPで作った、UI系のプログラム。あっちこっちデバッグ文ぶち込んでも一向に動かず「衰えたかな?」とか思っていた。いくら考えても「変なところ」は見つからないのに、出てくる結果は確かに変。まさか?と思って、試しにカッコを付けてみたところ動いた。えー、ウソ。本当に??で、ググって言語仕様を確認した。本当だ。これさあ、PHP言語仕様のバグじゃん。三項演算子(a?b:c)が左結合ってあり得ないよ。基本的にC言語をモロにパクって言語仕様決めたんでしょ?だったら、こういうところで、ボケな間違いをかまさないで欲しいよね。C言語の三項演算子は(C++もJavaもC#もみんな一緒だけど)右結合だよ。それが明らかに自然だもん。これを意図的に変えるとは考えられない。ということは、PHP作った人ってバカなの?だから、形式言語ってものをまともに勉強したことのない人が「自分勝手言語」作っちゃいけないんだよ。今からでも遅くないから、PHPの次のリリースでは、三項演算子の結合は右結合にすべきだね。はぁ、こんなもののために、丸2日も悩んでしまった。
結局「素人っぽい悩み」だと思っていたことは、実は私が超プロ(PHPを作った人よりも私の言語に関するレベルが上)だったための悩みだったんだな(爆)。
トラックバック - http://d.hatena.ne.jp/RepsolFireBlade/20130218/1361246430
リンク元
- 40 http://t.co/Atp1cRd9
- 26 http://b.hatena.ne.jp/
- 25 http://www-ig-opensocial.googleusercontent.com/gadgets/ifr?exp_rpc_js=1&exp_track_js=1&url=http://www.hatena.ne.jp/tools/gadget/bookmark/bookmark_gadget.xml&container=ig&view=default&lang=ja&country=JP&sanitize=0&v=26392bdca217641a&parent=ht
- 17 http://b.hatena.ne.jp/entrylist
- 16 http://t.co/CgQ3KV3I
- 11 http://t.co/KHTa4GrY
- 10 http://b.hatena.ne.jp/entrylist/it
- 7 http://b.hatena.ne.jp/entry/d.hatena.ne.jp/RepsolFireBlade/20130218/1361246430
- 7 http://hatebu.straightline.jp/
- 7 http://www.sleipnirstart.com/