Der zweite Parameter von bindParam ist eine Variable Referenz . Da auf eine Rückgabe der Funktion nicht referenziert werden kann, erfüllt sie nicht genau die Anforderungen des Parameters bindParam (PHP arbeitet jedoch mit Ihnen zusammen und gibt nur eine Warnung aus).
Um eine bessere Idee zu bekommen, hier ist und Beispiel: Dieser Code wird die gleichen Ergebnisse wie Ihr zweites Beispiel produzieren:
%Vor%Das ist mit einer Funktionsrückgabe nicht möglich.
Die Beschreibung von PDOStatement::bindParam()
besagt, dass es eine PHP -Variable an eine Quesitonmark oder einen benannten Platzhalter bindet. Da Sie versuchen, die Methode einer Klasse zu übergeben (obwohl diese Methode einen Wert zurückgibt), ist sie immer noch kein Variablenname, daher die Warnung. Sie können PDOStatement::bindValue()
betrachten, um Ihren Code zukunftssicher zu machen.
Wenn Sie vermeiden möchten, den Wert einer Variablen zuzuweisen, sollten Sie besser versuchen:
%Vor%Wie andere bereits erwähnt haben, wird der Fehler verursacht, weil PDO :: statement- & gt; bindParam erwartet Param 2 soll eine Referenzvariable sein.
Wenn Sie wirklich einen Wert anstelle eines Verweises binden möchten, können Sie das PDOStatement :: bindValue und dann wird der Code so aussehen:
%Vor%Tags und Links php pass-by-reference pdo