Warum gibt in_array () unerwartete / seltsame Ergebnisse zurück?

Warum istin_array() Benimmt sich manchmal so seltsam und liefert so unerwartete Ergebnisse?

Schauen wir uns ein paar Beispiele an:

$arrayWithTrue = ['Andreas', 'Philipp', true];
$arrayWithNull = [1, 2, 3, null];
$arrayWithMinusOne = [-1];

var_dump(in_array('Gary', $arrayWithTrue)); // returns bool(true)
var_dump(in_array(0, $arrayWithNull)); // returns bool(true)
var_dump(in_array(true, $arrayWithMinusOne)); // returns bool(true)

Huh? Was passiert hier!

(Vor einigen Jahren habe ich mich über dieses anfangs seltsame Verhalten gewundert. Ich dachte, es könnte für einige Leute nützlich sein, also habe ich diese Frage eingegeben.)

Antworten auf die Frage(2)

Ihre Antwort auf die Frage