Es kommt häufig vor, dass man eine Funktion schreiben möchte, die einen oder mehrere Werte für einen Parameter annimmt:
function getNamesById($id) { }
In diesem Fall würde es Sinn machen, dass, wenn diese Funktion mit einem Array von ids aufgerufen wurde, sie wahrscheinlich ein Array von Namen zurückgeben sollte. Um dem aufrufenden Code zu ersparen, die Eingabe in ein Array zu packen und dann die Ausgabe zu entpacken, sollte ein Skalar zurückgegeben werden, wenn Sie nur einen Skalar übergeben. Betrachten Sie den wahrscheinlichen Inhalt einer Funktion, die sowohl skalare als auch Array-Parameter verarbeiten kann:
function getNamesById($id) {
$returnAnArray = is_array($id);
$output = array();
foreach ((array)$id as $theId) {
// perform some logic
$output[] = someFunction($theId);
}
return $returnAnArray ? $output : $output[0];
}
Sie können sehen, dass in diesem Fall, Casting auf ein Array definitiv macht die Dinge viel einfacher für alle. Wie man so schön sagt: Sei großzügig in dem, was du akzeptierst... Solange es dokumentiert ist, dass es sich um erwartet dass eine Variable beides sein kann, dann sehe ich kein Problem. PHP ist ein duck-typed Sprache, die sowohl Vor- als auch Nachteile hat, aber dies ist einer der Vorteile, also genießen Sie ihn!