B-Teck!スマートフォン用の表示で見るB-Teck!お仕事からゲームまで幅広く2017-02-09【PHP】PHPの緩い比較とかの話PHPPHPの比較PHPには、2つの変数が等しいことを比較する演算子が==と===で2つある。==は、暗黙的に型を相互変換した後に行われる比較。===は、型も含めた比較となる。「2a問題」という名前で取り上げられることもある。"2a"という文字列が、==で整数型の2と比較した際に等しくなってしまうというやつだ。Trueのみ出力される==についての不思議な挙動は、下記でもっと深く見ることができる。実はin_arrayとかsortとか、switchとかarray_searchとか...PHP自体の組み込み関数には、デフォルトで==と同様の比較をしているものがある。例に挙げた以外にも多分あるんだと思うんだけど、まとまって参照できるところがなくてわからない。(誰か知ってたら教えてくれ)in_arrayとかarray_searchこいつらには第三引数にstrictってのがあって、これをtrueにすると型までみていい感じにしてくれる。デフォルトだと緩い比較なのでガバガバ。Manualsortあとこいつも第二引数で比較方法を設定できていい感じ。現在のロケールに基づいて比較します。同様の「自然順」で比較します。文字列のソートで大文字小文字を区別しないようにします。Manualswitch構文的に厳密な比較に対応してない。"iは0に等しい"が出力されちゃう回避するにはこうする。"iは0,1,2に等しくない"が出力されるこうなるとif-elseでいいんじゃ?って気もしてくるけど、switch使いたいときもあるから気をつけないといけない。アルゴリズムが少し複雑。その1【雑記】2019年よかったものたち月別アーカイブスポンサードリンクスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。