Die Funktion wurde auf diese Weise implementiert, um die Verwendung "klassischer" Vergleichsfunktionen zu ermöglichen, die eine solche Rückgabestrategie verwenden. Eine solche Funktion muss typischerweise drei Fälle ausdrücken können, was aus offensichtlichen Gründen nicht mit einem booleschen Rückgabewert möglich ist.
Sie können jedoch auch eine Vergleichsfunktion verwenden, die ein boolesches Ergebnis zurückgibt, da PHP als eine schwache typisierte Sprache das für Sie automatisch konvertiert. Werfen Sie einen Blick auf dieses Beispiel, das eine leicht modifed Version der in der Funktion Dokumentation sind:
<?php
function mystrcasecmp($a, $b) {
return strcasecmp($a, $b) ? true : false;
}
$array1 = array("a" => "green", "b" => "brown", "c" => "blue", "red");
$array2 = array("a" => "GREEN", "B" => "brown", "yellow", "red");
print_r(array_uintersect_assoc($array1, $array2, "mystrcasecmp"));
Sie können sehen, dass die Vergleichsfunktion, hier einen Booleschen Wert zurück, doch das Ergebnis ist genau das gleiche.
Fazit: Die vorhandene Implementierung ist flexibler, erlaubt aber die Verwendung einer Vergleichsfunktion, die ebenfalls ein boolesches Ergebnis liefert.