Umweltschutz

Migration der PHP Version: PHP Versionen Inkompatibilitäten

Schritt 1:


ACHTUNG:

Diese Informationen sind NICHT vollständig und sollen nur als Hilfe dienen, eigene Scripte an die neuen PHP Versionen anzupassen.

Bitte beachten Sie, dass wir dazu keine Hilfestellung leisten können und dies nur von Programmierern durchgeführt werden sollte.

Sollten Sie Software von einem Hersteller verwenden, fragen Sie bitte bei diesem nach, ob es ein Update der Software gibt. Wir empfehlen nicht, solche Software selbst umzuschreiben.

Schritt 2:


Inkompatibilitäten PHP 5.2 auf PHP 5.3

clearstatcache()
es wird nicht mehr standardmäßig der REALPATH CACHE gelöscht, dies muss mit dem Parameter true angegeben werden: clearstatcache( true );
https://secure.php.net/manual/de/function.clearstatcache.php


realpath()
gibt nun betriebssystemunabhängig den vollständigen Dateipfad aus, d.h ungültige, relative Pfade __FILE__ . "/../x" funktionieren nicht mehr
https://secure.php.net/manual/de/function.realpath.php


natsort(), natcasesort(), usort(), uasort(), uksort(), array_flip(), array_unique()
es können keine Objekte mehr übergegeben werden, das Objekt muss erst in ein Array umgewandelt werden.
Fehlermeldung: Warning: array_flip() expects parameter 1 to be array, object given in


das hintere Slash wurde bei der Klasse SplFileInfo und bei allen anderen Verzeichnisklassen entfernt


__toString()
diese magische Methode akzeptiert keine Argumente mehr
Fehlermeldung: Fatal error: Method auto::__tostring() cannot take arguments in


__get(), __set(), __isset(), __unset(), __call()
diese magischen Methoden dürfen nicht mehr statisch und nur noch öffentlich sein ( static public )
Fehlermeldung: Warning: The magic method __call() must have public visibility and cannot be static


__call() - diese magische Methode kann nun über private und protected Methoden aufgerufen werden


func_get_arg(), func_get_args(), func_num_args() 
https://secure.php.net/manual/de/function.func-num-args.php


goto, namespace
sind nun reservierte Schlüsselwörter, diese können nicht mehr als Funktions-, Klassen-Namen usw. genutzt werden
Fehlermeldung: Parse error: syntax error, unexpected T_GOTO, expecting T_STRING
https://secure.php.net/manual/de/language.namespaces.php


Genauere Informationen zu den Änderungen von PHP5.2 auf 5.3 finden Sie hier:

Außerdem finden Sie hier eine Liste von Variablen und Funktionen, die als veraltet angesehen werden und bald nicht mehr in zukünftigen PHP Versionen erscheinen werden:

Schritt 3:


Inkompatibilitäten PHP 5.3 auf PHP 5.4


break, continue
die Anweisungen können nur noch statische Argumente verwenden, variable wie break 1 + foo() sind nicht mehr möglich.
Fehlermeldung: Fatal error: 'break' operator with non-constant operand is no longer supported
https://secure.php.net/manual/de/control-structures.continue.php


Safe mode
wird generell nicht mehr in PHP 5.4 verwendet

 
Salsa10, Salsa20
diese Hash Alogorithmen wuden komplett entfernt
Fehlermeldung: Warning: hash(): Unknown hashing algorithm: salsa10 
https://secure.php.net/manual/de/book.hash.php


TZ Umgebungsvariablen
das Setzen der Zeitzone wird nicht länger von der Datum und Uhrzeit Extension unterstützt.
PHP wird nicht länger versuchen die Zeitzone zu erraten, sondern wird statt dessen auf "UTC" zurückfallen.


get_magic_quotes_gpc(), get_magic_quotes_runtime()
geben nur noch false zurück, da Magic Quotes entfernt wurde

 
set_magic_quotes_runtime()
erzeugt einen fatalen Fehler ( E_CORE_ERROR )
Fehlermeldung: Fatal error: set_magic_quotes_runtime(): magic_quotes_runtime is not supported anymore
https://secure.php.net/manual/de/function.set-magic-quotes-runtime.php


es können keine Superglobalen Parameternamen für Funktionen verwendet werden: z.b. function func( $_GET ){}
Fehlermeldung: Fatal error: Cannot re-assign auto-global variable _GET in


array_combine()
gibt ein leeres Array zurück anstatt false, wenn zwei leere Arrays übergeben werden
https://secure.php.net/manual/de/function.array-combine.php


es dürfen keine Referenzen zur Laufzeit übergeben werden:
function func( &$arc ){} //erlaubt,
test( &$arc ); //Fehler
Fehlermeldung: Fatal error: Call-time pass-by-reference has been removed in
https://secure.php.net/manual/de/language.references.pass.php


htmlentities()
wenn asiatische Zeichensätze verwendet werden, gibt es eine Warnung vom Typ E_STRICT
https://secure.php.net/manual/de/function.htmlentities.php


trait, callable, insteadof
sind nun reservierte Schlüsselwörter, diese können nicht mehr als Funktions-, Klassen-Namen usw. verwendet werden
Fehlermeldung: Parse error: syntax error, unexpected 'insteadof' (T_INSTEADOF), expecting identifier (T_STRING) or '('
https://secure.php.net/manual/de/language.oop5.traits.php


define_syslog_variables(), import_request_variables(), session_is_registered(), session_register(), 
session_unregister(), mysqli_bind_param(), mysqli_bind_result(), mysqli_client_encoding(), mysqli_fetch(), mysqli_param_count(), mysqli_get_metadata(), mysqli_send_long_data(), mysqli::client_encoding(), 
mysqli_stmt::stmt()
diese Funktionen wurden entfernt
Fehlermeldung: Fatal error: Call to undefined function define_syslog_variables() in

$PHP_SELF
diese Variable wurde nach $_SERVER[ 'PHP_SELF' ] verschoben

$HTTP_POST_VARS, $HTTP_GET_VARS
wurden entfernt, verwenden Sie dafür bitte $_POST und $_GET

Genauere Informationen zu den Änderungen von PHP5.3 auf 5.4 finden Sie hier:
 
Außerdem finden Sie hier eine Liste von Variablen und Funktionen, die als veraltet angesehen werden und bald nicht mehr in zukünftigen PHP Versionen vorhanden sind:

Schritt 4:


Inkompatibilitäten PHP 5.4 auf PHP 5.5

Die meisten bestehenden PHP5 Befehle sollten ohne Anpassungen funktionieren. Es gibt allerdings auch kleine Änderungen:
 
php_logo_guid(), php_egg_logo_guid(), php_real_logo_guid(), zend_logo_guid()
Funktionen wurden entfernt
Fehlermeldung: Fatal error: Call to undefined function php_logo_guid()
 
Genauere Informationen zu den Änderungen von PHP5.4 auf 5.5 finden Sie hier:
 
Außerdem finden Sie hier eine Liste von Variablen und Funktionen, die als veraltet angesehen werden und bald nicht mehr in zukünftigen PHP Versionen vorhanden sind:
Suche
in Titel
in Beschreibung