Hilfe:PHP und Unterschiede in den Versionen: Unterschied zwischen den Versionen

aus GenWiki, dem genealogischen Lexikon zum Mitmachen.
Zur Navigation springen Zur Suche springen
(→‎PHP 5.3: geändert)
Zeile 37: Zeile 37:


==== entfernt ====
==== entfernt ====
* s2k hashing ist nicht mehr wie in PHP 5.3.0 verfügbar.
* Folgende Schlüsselworte sind nun reserviert:
** goto
** namespace
==== abgekündigt ====
==== abgekündigt ====
==== geändert ====
==== geändert ====
Zeile 55: Zeile 60:
* Die Funktionen func_get_arg(), func_get_args() und func_num_args() können nun nicht mehr aus dem äußersten Gültigkeitsrahmen einer Datei gerufen werden, die via include() oder require() aus einer Funktion der rufenden Datei eingebunde wurde.
* Die Funktionen func_get_arg(), func_get_args() und func_num_args() können nun nicht mehr aus dem äußersten Gültigkeitsrahmen einer Datei gerufen werden, die via include() oder require() aus einer Funktion der rufenden Datei eingebunde wurde.
* s2k hashing ist nicht mehr wie in PHP 5.3.0 verfügbar.
* s2k hashing ist nicht mehr wie in PHP 5.3.0 verfügbar.
* Folgende Schlüsselworte sind nun reserviert:
* Folgende Schlüsselworte sind nun reserviert:
** goto
** goto

Version vom 2. April 2012, 15:06 Uhr

Info
Die aufgeführten Informationen sind nicht vollständig und beinhalten v.a. keine reine Fehlerbereinigungen (bug fixes).



Zum Selberlesen

PHP 5

PHP 5.4

neu

entfernt

abgekündigt

geändert

PHP 5.3

neu

(Vgl.: http://www.php.net/manual/de/migration53.new-features.php)

  • Unterstützung für Namensräume (namespaces)
  • Unterstützung für Späte Statische Bindung (Late Static Bindings)
  • Sprungmarken (jump labels, limited goto)
  • Native Closures (Lambda/Anonymous Funktionen)
  • zwei neue "magic methods":
    • __callStatic
    • __invoke
  • Nowdoc syntax wird unterstützt
  • Heredocs darf zur Initialisierung statischer Variablen und von Werten und Konstanten von Klassen verwendet werden
  • Heredocs dürfen mit doppelten Anführungsstrichen deklariert werden
  • Konstanten können außerhalb einer Klassen mit dem Schlüsselwort const deklariert werden
  • Der ternary operator hat nun die Kurzform ?:.
  • Der HTTP stream wrapper berücksichtigt nun alle Status Codes von 200 bis 399 als "erfolgreich"
  • Es ist nun ein dynamischer Zugriff auf statische Methoden möglilch
  • Exceptions können nun verschachtelt sein
  • Ein Aufräumjob (garbage collector) für zirkuläre Referenzen ist neu und standardmäßig aktiv
  • Die Funktion mail() unterstützt nun das Logging mit dieser Funktion versendeter Mails

entfernt

  • s2k hashing ist nicht mehr wie in PHP 5.3.0 verfügbar.
  • Folgende Schlüsselworte sind nun reserviert:
    • goto
    • namespace

abgekündigt

geändert

(Vgl.: http://www.php.net/manual/de/migration53.incompatible.php)

  • In allen mit PHP 5.3.x mitgelieferte Modulen gilt jetzt eine neuere interne Parameter-Parsing-API, die die Funktionen veranlasst, bei der Übergabe inkompatibler Parameter den Wert NULL zurückzuliefern! Es gibt einige Ausnahmen von dieser Regel, so z.B. die Funktion get_class(), die weiterhin bei einem Fehler FALSE zurückliefert.
  • clearstatcache() löscht nicht mehr standardmäßig den realpath cache.
  • realpath() ist nun vollkommen Plattform unabhängig. Als Konsequenz daraus funktionieren ungültige relative Pfade, wie z.B. __FILE__ . "/../x" nicht mehr
  • Die Funktionsfamilie call_user_func() verfügt nn über über $this, selbst wenn der Aufrufer eine Elternklasse ist.
  • Die Arrayfunktionen natsort(), natcasesort(), usort(), uasort(), uksort(), array_flip() und array_unique() akzeptieren keine Objekte als Parameter. Zu diesem Zweck müssen die Objekte in ein Array per Typecast angepasst werden.
  • Funktionen akzeptieren nicht mehr, dass Paramter, die in der Funktion als By-Reference deklariert sind, als By-Value übergeben werden. Dies erzeugt nun einen fatal error. Als Lösung muss der Übergabewert vorher einer Variable zugeweisen und diese übergeben werden.
  • Die neue Bibliothek mysqlnd (anstelle libmysql) erwartet nun die Verwendung des neueren MySQL 4.1 Passwort-Formats (41 Bytes). Die Vewendung des alten (16 Bytes) Formates erzeugt bei mysql_connect() und ähnlichen Funktionen den Fehler: "mysqlnd cannot connect to MySQL 4.1+ using old authentication."
  • Die neue Bibliothek mysqlnd (anstelle libmysql) liest nun nicht mehr die MySQL Konfigurationsdateien (my.cnf/my.ini). Sollte der Programmcode von dort vereinbarten Einstellungen abhängen, sind die notwendigen Werte mit der Funktion mysqli_options() explizit zu laden. Das hat weiterhin zur Folge, dass in PDO, dessen MySQL-Unterstützung mit mysqlnd kompiliert wurde, die PDO spezifischen Konstanten PDO::MYSQL_ATTR_READ_DEFAULT_FILE und 'PDO::MYSQL_ATTR_READ_DEFAULT_GROUP undefiniert sind.
  • In SplFileInfo und analogen Verzeichnisklassen wurde das "/" am Ende entfernt.
  • Die "Magische Methode" __toString akzeptiert keine Argumente mehr.
  • Die "Magischen Methoden" __get, __set, __isset, __unset und __call müssen nun immer public und dürfen nicht mehr static sein. Die Angabe der Sichtbarkeit einer Methode ist nun Pflicht.
  • Die "Magische Methode" __call wird nun beim Zugriff auf private und protected Methoden aufgerufen.
  • Die Funktionen func_get_arg(), func_get_args() und func_num_args() können nun nicht mehr aus dem äußersten Gültigkeitsrahmen einer Datei gerufen werden, die via include() oder require() aus einer Funktion der rufenden Datei eingebunde wurde.
  • s2k hashing ist nicht mehr wie in PHP 5.3.0 verfügbar.
  • Folgende Schlüsselworte sind nun reserviert:
    • goto
    • namespace

PHP 5.2

neu

entfernt

abgekündigt

geändert

PHP 5.1

neu

entfernt

abgekündigt

geändert

PHP 5.0

neu

entfernt

abgekündigt

geändert

PHP 4

PHP 4.4

neu

entfernt

abgekündigt

geändert

PHP 4.3

neu

entfernt

abgekündigt

geändert

PHP 4.2

neu

entfernt

abgekündigt

geändert

PHP 4.1

neu

entfernt

abgekündigt

geändert

PHP 4.0

neu

entfernt

abgekündigt

geändert