Unknown::Programmingスマートフォン用の表示で見るUnknown::Programmingこの広告は、90日以上更新していないブログに表示しています。PHPいや、まぁ、Perlプログラマというか僕が、なんですけどね。わけで自分用にメモメモ。Perl感覚でPHP組んでる時によく陥る罠をまとめとく。ここで言う罠とは文法的には正しいが、処理としては間違ってるものが対象。文法的にミスってた場合はその場で即エラーになるからいいんだけど効果を勘違いしてる場合はエラーにならないからタチが悪いんだよね。メソッドとメンバ変数の罠Perlの場合、メソッドを呼び出す際括弧をつけてもつけなくてもいいが、PHPの場合は括弧がついてたらメソッド、ついてなかったらメンバ変数なのでPHPでメソッド呼び出しするときは慎重に。'default';コレには参った参った。PHPの場合||で評価されたものは全てboolean型を返す仕様。$aとかやっても表示されるのは「1」だ。);のようにも書けるが見栄えがよろしくないのであまりオススメしない。10とこのようにハッシュのキー名をシングルクォートで括らなくてもOKだが、PHPは必ずシングルクォートで括らないといけないとマニュアルに書いてある。括っても括らなくてもちゃんと動作する。10実はこの挙動には理由があるのだが、その理由を説明する前にPHPにおける定数について説明しよう。定数を定義するにはdefine()関数を使う。Hellow!!さて、感の鋭い方はもうお気づきだろうが、PHPにおける裸の文字列は全て定数と見なされる。その時にその裸の文字列がdefine()で定義されていない場合、デフォルトの挙動として自身と同じ文字列を返すような仕様になっているわけだ。HOGEと、言うことは$array[key_name]とは結局のところkey_nameという定数を参照していることになる。シングルクォートで括っていなかった場合、どうなるかというと・・・。10ってなことになってしまうわけなのだ。Perlに慣れている人は特に要注意すべし。ひとりでもグループまさにこれ。これは僕も同じ罠に嵌りました。優先順位がブッ飛んでますよね。これを無理にでも三項演算子を用いて動かしたいのならLispのように括弧だらけになる。いう場合はどうするのがいいんでしょ。}とりあえずざっとこんなもん。