私は午前中ずっとphpin_array()関数で苦労しました。最終的には修正できましたが、設定によって問題が修正された理由について少し混乱しています。
変数$typeを文字列値(正確には'forum')に設定し、$all_typesを次のような配列に設定します。
$ all_types:
[protocol2] => protocol2
[group] => 0
[post] => 0
[forum] => 0
[article] => 0
[page] => 0
[protocol1] => 0
そして、私は持っていました:
if (in_array($type,$all_types) !== FALSE) {
"Do stuff..."
}
そして、「何かをする...」が起こり続けました。最初は、配列の「フォーラム」キーがヒットしたためだと思ったので、配列を次のように変更してみました。
[0] => protocol2
[1] => 0
[2] => 0
[3] => 0
[4] => 0
[5] => 0
[6] => 0
しかし、それでも機能しませんでした。最後に、STRICT変数をTRUEに設定すると、元の配列でも正常に機能しているようです。
では、これはなぜですか?STRICT = TRUEは、干し草の山の針と値が同じタイプである必要があることを意味しますが、一致する場合は両方の文字列ではありませんか?そして、彼らが「フォーラム」を0と比較しないとき、それは何らかの理由で一致しますか?