以下を比較しようとしています:値が配列でない場合、または値がfalse に等しくない場合は、戻ります。
if (is_array($value) != true || $value != false) return;
これと、私が試している他のバリエーションはうまくいかないようです。ただし、これらを独自の if ステートメントで個別に比較すると、正しい結果が返されます。
どんな助けでも大歓迎です!
以下を比較しようとしています:値が配列でない場合、または値がfalse に等しくない場合は、戻ります。
if (is_array($value) != true || $value != false) return;
これと、私が試している他のバリエーションはうまくいかないようです。ただし、これらを独自の if ステートメントで個別に比較すると、正しい結果が返されます。
どんな助けでも大歓迎です!
あなたはもともと「配列ではないか、falseでない場合」と言っていました。あなたは後ろ向きに考えています。「値が配列またはfalseの場合は続行し、そうでない場合は返す」ことが必要です。
そう:
// This says: "if it's not (an array or false)"
if(!(is_array($value) || $value === FALSE)) return;
ド・モルガンの法則を使用して、これを次のように変換できます。
// This says: "if it's not an array and not false"
if(!is_array($value) && $value !== FALSE) return;
私は次のように書きます:
if (!is_array($value) || $value !== false)
PHP では多くのことが == false になる可能性がありますが、ブール値の false だけが === false になる可能性があります。ブール型のマニュアルページと比較演算子のマニュアルページをチェックしてください