dedlfix: PHP Funktion mit unbekannten Werten

Beitrag lesen

Tach!

(noch 2 Minuten später) Wieso setzt du die Variablen $name, $projektnummer,... =false, da kommt doch in der Funktion nur False an Du brauchst dort die Variablen nicht auf False setzen oder tu das dierkt bei der initialisierung.

Das sind nur Default-Werte, die genommen werden, wenn man weniger Wert an die Funktion übergibt, als sie eigentlich Parameter haben möchte. Wenn Werte übergeben werden, werden diese statt dem false in der Variable landen.

Mit der geänderten Kontrollstruktur, ist es dann auch möglich, in einem Datumsbereich zu suchen. Könnte dann aber unübersichtlich werden.

Eben, und deshalb war die Empfehlung mit dem call_user_func_array() schon nicht schlecht. Damit muss man nicht für jeden neuen Parameter die Struktur erweitern. Mit den steigenden Kombinationsmöglichkeiten wachsen dann auch die Verzweigungen, und das nicht linear.

Allerdings ist auch eine Lösung damit nicht trivial. mysqli_stmt::bind_param() möchte Variablen per Referenz übergeben haben. Und das passt nicht so ganz zur Arbeitsweise von call_user_func_array(). Einfacher kommt man in einem solchen Fall mit PDO. Dessen PDOStatement::bindParam() lässt sich einzeln und damit auch problemlos in einer Schleife aufrufen. Alternativ kann man auch dem PDOStatement::execute() einfach ein Array übergeben.

dedlfix.