Abo
  • Services:
Anzeige
PHP 7 ist erschienen.
PHP 7 ist erschienen. (Bild: PHP.net)

Rückwärtskompatibilität

Generell ist die Abwärtskompatibilität so hoch, dass fast jede Applikation, die mit PHP 5.6 funktioniert, auch unter PHP 7 laufen sollte. Es gibt jedoch ein paar kleinere Änderungen, die eine direkte Migration von Anwendungen problematisch machen könnten.

Durch die Einführung der Type-Hints wurden alle entsprechenden Typ-Bezeichnungen wie "int", "string" und "float" zu der Liste der reservierten Wörter hinzugefügt. Dies bedeutet, dass keine eigenen Klassen oder Interfaces mehr mit diesen Namen definiert werden können und existierende Klassen oder Interfaces mit diesen Namen umbenannt werden müssen. Dazu kommen noch einige Namen wie "object" oder "numeric", die schon jetzt vorsorglich reserviert wurden.

Anzeige

Innerhalb von foreach wird der interne Zeiger im iterierten Array nicht mehr modifiziert. Wenn innerhalb einer foreach-Schleife zusätzlich mit den Array-Funktionen current() oder next() gearbeitet wird, so wird sich der entsprechende Code unter PHP 7 anders verhalten.

Die am schwersten zu findende Änderung dürfte aber auch gleichzeitig die wenigsten Benutzer betreffen. Unter dem Namen "uniform variable syntax" wurde die Präzedenz der Operatoren beim Auflösen dynamischer Variablen- und Methodennamen verändert. Eine Klammerung der Operationen mit Hilfe von geschweiften Klammern ist der einfachste Weg, diese Operationen eindeutig zu definieren.

Mit dieser Änderung werden allerdings nun auch einige Operator-Kombinationen unterstützt, die vorher nicht zusammen verwendet werden konnten. Rasmus Lerdorf hat mit Phan einen statischen Code-Analyzer entwickelt, der problematische Code-Stellen aufdecken sollte.

Viele Konstrukte aus PHP 4, die schon lange als veraltet markiert waren, wurden entfernt. Code, der seit PHP 4 unverändert geblieben ist, wird damit unter PHP 7 wahrscheinlich nicht mehr funktionieren. Dazu gibt es die schon lange als veraltet markierte Erweiterung mysql nicht mehr. Benutzer einer MySQL-Datenbank müssen auf mysqli oder pdo_mysql umsteigen.

Was wurde aus PHP 6?

Eine häufige Frage ist: Warum heißt das Release PHP 7 und nicht PHP 6? Diese Entscheidung wurde sehr intensiv auf den entsprechenden Mailinglisten diskutiert.

PHP 6 sollte vor einigen Jahren veröffentlicht werden, mit der Hauptintention, nativ Unicode-Strings zu unterstützen. Dieses Vorhaben wurde aufgrund des hohen Aufwandes interner Restrukturierungen und Inkompatibilitäten vollständig abgebrochen. Damit hat PHP 7 einen anderen Fokus als das nie veröffentlichte PHP 6. Durch das Überspringen einer Hauptversion soll damit weniger Verwirrung bei den Benutzern erzeugt werden. Das war den Entwicklern von PHP letztendlich wichtiger als das Bestehen auf formal korrekter Versionierung.

Kompatibilität von Anwendungen und Erweiterungen

Schon bei dem ersten Release-Kandidaten von PHP 7 liefen die meisten Anwendungen wie Wordpress und Drupal ohne Änderungen mit der neuen Version. Die notwendigen Anpassungen bei Anwendungen, die vorher schon mit aktuellen PHP-Versionen lauffähig waren, halten sich in Grenzen. Damit lässt sich im Normalfall durch ein einfaches Upgrade auf PHP 7 die Performance der eigenen Anwendungen deutlich steigern. Zusätzlich sinken CPU- und Speicherauslastung auf den Servern.

Wie schon zuvor erwähnt, liegt das Problem hauptsächlich bei den Erweiterungen. An der Kompatibilität vieler populärer Erweiterungen wie z. B. Debugger und Profiler XDebug wird zur Zeit gearbeitet. Dafür gibt es eigens eine Initiative Go PHP-7-ext, die sich mit der Koordination und Dokumentation der Kompatibilität beschäftigt.

Da seit PHP 5.5 standardmäßig ein Op-Code-Cache mit PHP geliefert wird, wurde dieser auch schon für PHP 7 angepasst. Ebenso vorhanden ist der Debugger PHPDBG, der seit PHP 5.6 im Kern der Sprache verankert ist.

PHP 7, HHVM und Hack

Bisher gab es zwei Gründe dafür, HHVM anstelle von PHP 5 zu verwenden: die bessere Performance und einige zusätzliche Sprachfeatures in der Spracherweiterung Hack.

Die Performance von PHP 7 ist je nach Applikation manchmal etwas besser und manchmal etwas schlechter als mit HHVM. Dafür lässt sich PHP 7 weiter genauso installieren und einrichten wie PHP 5. HHVM unterscheidet sich dahingegen im Setup gravierend von PHP. Eine Beschleunigung der eigenen Anwendung sollte sich mit PHP 7 im Allgemeinen deutlich leichter erzielen lassen.

Außerdem hat Hack viele oft angefragte Sprachfeatures implementiert, die jetzt aber zum Teil auch in PHP 7 verfügbar sind. Da der Entwicklungsprozess bei PHP langsamer ist, weil die Community gemeinsam über neue Features diskutiert und entscheidet, wird es noch eine Weile dauern, bis alle Features im Kern von PHP übernommen oder abgelehnt werden.

Es gibt einige Erweiterungen in Hack wie Generics und Lamdas, die es noch nicht zu PHP geschafft haben - wer diese verwenden will, sollte sich eventuell HHVM und Hack genauer ansehen. Auf der anderen Seite gibt es verschiedene Features von PHP, die auch mit HHVM und Hack nicht funktionieren. Generell ist es mehr Arbeit, eine PHP-5-Anwendung mit HHVM zum Laufen zu bringen als unter PHP 7.

 Neue Features in PHP 7Release-Cycle 

eye home zur Startseite
DASPRiD 07. Dez 2015

Ondrej sellt in einem experimentellen Repository alle PHP-Minor Versionen zur Verfügung...

Baron Münchhausen. 07. Dez 2015

+1 Solchen Pfosten ist es nicht bewusst, dass sie damit niemandem, der Ahnung hat was...

zilti 07. Dez 2015

DAS würde ich gerne sehen, dass man das mit Browsereinstellungen verhindern kann...

addik5 05. Dez 2015

https://en.wikipedia.org/wiki/No_true_Scotsman

tibrob 04. Dez 2015

Vergleiche doch einfach mal: Extension: http://php.net/manual/de/book.imagick.php...



Anzeige

Stellenmarkt
  1. Landratsamt Starnberg, Starnberg bei München
  2. über Ratbacher GmbH, Raum Frankfurt am Main
  3. MBtech Group GmbH & Co. KGaA, Regensburg, Neutraubling
  4. über Hanseatisches Personalkontor München, Großraum München


Anzeige
Spiele-Angebote
  1. (-15%) 16,99€
  2. (-90%) 1,99€
  3. 69,99€

Folgen Sie uns
       


  1. Verbraucherzentrale

    O2-Datenautomatik dürfte vor Bundesgerichtshof gehen

  2. TLS-Zertifikate

    Symantec verpeilt es schon wieder

  3. Werbung

    Vodafone will mit DVB-T-Abschaltung einschüchtern

  4. Zaber Sentry

    Mini-ITX-Gehäuse mit 7 Litern Volumen und für 30-cm-Karten

  5. Weltraumteleskop

    Erosita soll Hinweise auf Dunkle Energie finden

  6. Anonymität

    Protonmail ist als Hidden-Service verfügbar

  7. Sicherheitsbehörde

    Zitis soll von München aus Whatsapp knacken

  8. OLG München

    Sharehoster Uploaded.net haftet nicht für Nutzerinhalte

  9. Linux

    Kernel-Maintainer brauchen ein Manifest zum Arbeiten

  10. Micro Machines Word Series

    Kleine Autos in Kampfarenen



Haben wir etwas übersehen?

E-Mail an news@golem.de


Anzeige
Intel Core i7-7700K im Test: Kaby Lake = Skylake + HEVC + Overclocking
Intel Core i7-7700K im Test
Kaby Lake = Skylake + HEVC + Overclocking
  1. Kaby Lake Intel macht den Pentium dank HT fast zum Core i3
  2. Kaby Lake Refresh Intel plant weitere 14-nm-CPU-Generation
  3. Intel Kaby Lake Vor der Vorstellung schon im Handel

Dienste, Programme und Unternehmen: Was 2016 eingestellt und geschlossen wurde
Dienste, Programme und Unternehmen
Was 2016 eingestellt und geschlossen wurde
  1. Kabel Mietminderung wegen defektem Internetkabel zulässig
  2. Grundversorgung Kanada macht Drosselung illegal
  3. Internetzugänge 50 MBit/s günstiger als 16 MBit/s

Macbook Pro 13 mit Touch Bar im Test: Schöne Enttäuschung!
Macbook Pro 13 mit Touch Bar im Test
Schöne Enttäuschung!
  1. Schwankende Laufzeiten Warentester ändern Akku-Bewertung des Macbook Pro
  2. Consumer Reports Safari-Bug verursachte schwankende Macbook-Pro-Laufzeiten
  3. Notebook Apple will Akkuprobleme beim Macbook Pro nochmal untersuchen

  1. Re: Von Trump ist keine Rede

    torrbox | 03:37

  2. Re: Mahngebühren und Zahlungsverzug stecken...

    torrbox | 03:29

  3. Re: Es wird immer was vergessen

    wasdeeh | 03:28

  4. Re: Gefällt mir

    Cohaagen | 03:08

  5. Re: Naja, ganz so klar ist das auch nicht

    logged_in | 02:50


  1. 19:03

  2. 18:45

  3. 18:27

  4. 18:12

  5. 17:57

  6. 17:41

  7. 17:24

  8. 17:06


  1. Themen
  2. A
  3. B
  4. C
  5. D
  6. E
  7. F
  8. G
  9. H
  10. I
  11. J
  12. K
  13. L
  14. M
  15. N
  16. O
  17. P
  18. Q
  19. R
  20. S
  21. T
  22. U
  23. V
  24. W
  25. X
  26. Y
  27. Z
  28. #
 
    •  / 
    Zum Artikel