Hallo MB,
es ist völlig ok, wenn Du bei einer fehlgeschlagenen Suche null zurückgibst. Das machen viele so.
Alternativen gibt es mannigfaltig:
-
eine Exception in den Himmel schießen und darauf hoffen, dass irgendwo ein try-catch darauf wartet, sie einzufangen. Aber Exceptions sollten nicht für fachliche Fehlersituationen eingesetzt werden, sondern für technische.
-
FALSE zurückgeben. Viele PHP APIs machen das so. Mich schaudert es jedesmal, ich halte das für eine der schlechteren Entscheidungen von good ol' Rasmus.
-
Ein Array mit zwei Elementen zurückgeben:
return [ $success, $result ];
und als list() emfangen:
list($success, $user) = $user_repo->findByPseudo( 'mb' );
Das war ein Scherz, lass das sein. -
Zwei getrennte Werte zurückzugeben macht man aus meiner Sicht besser mit einem Objekt. Du kannst eine Klasse QueryResult erfinden und ihr zwei Eigenschaften geben: Success und Result. Success ist der Erfolg der Abfrage, und Result ist nur gefüllt wenn Success auf true steht.
$userResult = $user_repo->findByPseudo( 'mb' );
if ($userResult->Success) { ...code, verwende $userResult->Result... }
Nichts davon ist so kompakt und simpel wie eine einfache null-Rückgabe. Auch wenn Tony H. das für den Milliarden-Dollar Fehler seines Lebens hält...
Rolf
sumpsi - posui - clusi