Wissensdatenbank
1000 FAQ, 500 Anleitungen und Lernvideos. Hier gibt es nur Lösungen!
Wie verläuft die Migration von PHP4 auf PHP5.2? Welche Risiken bestehen?
PHP4.x und PHP5.2.x besitzen jeweils spezifische Vorteile und sind kaum miteinanderkompatibel; viele für PHP4 erstellte Skripte laufen unter PHP5 nicht(und umgekehrt). Weitere Informationen finden Sie unten. Bevor Sie dieMigration zum Wechsel auf eine andere Plattform in Auftrag geben, empfehlenwir Ihnen allerdings nachdrücklich, Ihre gesamte Website auf Ihremeigenen Rechner zu testen (der Apache-Webserver kann unter der Adresse
Wenn Sie PHP-Skripte verwenden, die nicht für Version 5erstellt wurden, ist unbedingt zu überprüfen, ob die EntwicklerAktualisierungen oder neue Versionen für Version 5 anbieten.
Haben Sie den PHP-Code Ihrer Website vor mehreren Jahren geschrieben undsind sich nicht sicher, ob er unter PHP5 ausführbar ist? Hier einLeitfaden zum besseren Verständnis der Unterschiede zwischen diesenbeiden Versionen.
• strrpos und stripos() arbeiten jetzt mitganzen Zeichenketten.
Diese Funktionen suchen grundsätzlich das Vorkommen eines einzelnen Zeichens in einer Zeichenkette.
• Die fehlerhaft Verwendung eines Index in einer Zeichenkettehat die Ausgabe einer Fehlermeldung E_ERROR zur Folge, statt die Ausgabeeiner Warnung E_WARNING (Beispiel: $str = 'abc'; unset($str[0]);)
• array_merge() akzeptiert nur noch Tabellen. Wenn Sie einer Tabelleein Element hinzufügen wollen und diese Funktion unbedingt verwendenmöchten (und nicht array_push oder ), müssen Sie Ihr Element ineine Tabelle setzen: array_merge($montableau, array ($monelement) ); WennSie diese Funktion trotzdem zusammen mit einem Element verwenden, das keineTabelle ist, wird eine E_WARNING ausgegeben; das Ergebnis ist eine leereTabelle.
• Die Server-Variable PATH_TRANSLATED enthältnicht mehr unbedingt den gleichen Wert wie in PHP4.
Siewurde manchmal zum Überschreiben der Links unter Apache (ModRewrite)verwendet.
• Die Konstante T_ML_CONSTANT gibt es nicht mehr(sie war durch die Tokenizer-Erweiterung definiert).
• Inder CLI-Version von PHP5 werden weiterhin die globalen Variablen $argc und$argv verwendet.
• Ein Objekt ohne Eigenschaften wird nichtmehr als leer (empty) betrachtet
• get_class() gibt denNamen der Funktion wie angegeben zurück, ohne die Klasse zu ändern. In PHP4 war der zurückgegebene Name immer in Kleinbuchstaben.Gleiches gilt für die magischen vordefinierten Konstanten__CLASS__,__METHOD__ und __FUNCTION__.
• gibt jetzt die boolescheVariable Falsch (false) zurück, wenn die angegebene Adresse nichtkorrekt ist. In PHP4 gab die Funktion -1 zurück.
• DieFunktion is_a() wurde herabgestuft und darf nicht mehr verwendet werden.Stattdessen ist der Operator instanceof zu verwenden.
•$this kann in einem Objekt nicht mehr neu zugewiesen werden.
• include_once() und require_once() normalisieren zuerst den Pfad derunter Windows einzubindenden Datei, weshalb das Einbinden der Datei A.phpund der Datei a.php sich auswirkt, als würde man die Datei nur einmaleinbinden.
• Bestimmte Schlüsselwörter sind PHP5vorbehalten und dürfen nicht verwendet werden. Dies sind: exception,interface, protected, throw, abstract, implements, clone, final, public,try, this, php_user_filter, private, catch.
Die meisten dieserSchlüsselwörter haben mit dem erweiterten Objektbegriff in PHP5 zutun, ebenso wie mit privaten/öffentlichen Variablenkonzepten, derFehlerverwaltung (try/catch, ein Befehl, den eingefleischte Java-Fansauswendig können) usw.
Link zu dieser FAQ: