Behebung des PHP 5.4 Call-Time Pass-by-Reference-Problems
Mit der Einführung von PHP 5.4 wurde das Call-Time Pass-by-Reference-Problem behoben. By-Reference, was zu dem gefürchteten Fehler „Call-time Pass-by-Reference wurde entfernt“ führte. Dieser Fehler tritt auf, wenn Variablen als Referenzen in Legacy-Code an Funktionen übergeben werden.
Einfache Korrektur oder vollständige Neuschreibung?
Es gibt keine einfache Lösung für dieses Problem. Das Problem ergibt sich aus der Art und Weise, wie Referenzen in Funktionsdefinitionen und nicht in Funktionsaufrufen deklariert werden. In der PHP-Dokumentation heißt es: „Es gibt kein Referenzzeichen für einen Funktionsaufruf – nur für Funktionsdefinitionen.“
Legacy-Code neu schreiben
Seit PHP damit begonnen hat, veraltete Fehler für Aufrufe auszugeben -time Pass-by-Reference in Version 5.3 wird dringend empfohlen, Legacy-Code neu zu schreiben, um potenzielle Kompatibilitätsprobleme in der zu vermeiden Zukunft.
Beispiel-Umschreibung
Anstelle von:
// Wrong way! myFunc(&$arg); // Deprecated pass-by-reference argument function myFunc($arg) { }
Verwenden Sie:
// Right way! myFunc($arg); // pass-by-value argument function myFunc(&$arg) { }
Durch die Deklaration von Referenzen in der Funktion Mit Definitionen stellen Sie sicher, dass PHP Argumente per Referenz übergibt, ohne dass eine veraltete Syntax in der Funktion erforderlich ist Anrufe.
Das obige ist der detaillierte Inhalt vonWie kann ich den PHP 5.4-Fehler „Call-time Pass-by-reference wurde entfernt' beheben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!