Release Candidate von PHP 5.3.0 veröffentlicht

Namespaces, Lambda-Funktionen, Closures und Late Static Binding

Mit der Veröffentlichung von PHP 5.3.0 RC1 nähert sich die Entwicklung des nächsten größeren Updates für PHP der Fertigstellung. Die neue Version bringt einige Funktionen mit, die ursprünglich für PHP 6 vorgesehen waren.

Artikel veröffentlicht am ,

Zu den wesentlichen Neuerungen von PHP 5.3 zählt die Einführung von Namespaces, die seit der dritten Alphaversion Teil der Scriptsprache sind. Diese Namensräume kapseln Funktionen und Klassen ein, wodurch sich Programmierer keine Gedanken mehr machen müssen, ob ein Funktions- oder Klassenname bereits verwendet wird. Sie waren ursprünglich erst für PHP 6 anvisiert.

Stellenmarkt
  1. Inhouse ERP Manager (m/w/d)
    baramundi software AG, Augsburg
  2. Ph.D. Students / Graduate Research Assistants / Graduate Research Associates at the Chair of ... (m/w/d)
    Universität Passau, Passau
Detailsuche

Ebenfalls neu sind Lambda-Funktionen, auch bekannt als anonyme Funktionen, zum Beispiel in JavaScript. Sie sind ein reguläres Sprachelement funktionaler Sprachen und werden nicht explizit mit einem Namen deklariert und unter diesem aufgerufen, sondern der Funktionskörper muss einer Variablen zugewiesen werden. Deshalb kann eine Lambda-Funktion auch als Über- oder Rückgabewert einer Funktion übergeben werden.

Zusammen mit Lambda-Funktionen werden auch sogenannte Closures eingeführt. Lambda-Funktionen werden häufig innerhalb einer Funktion oder Methode definiert, aber zumeist nicht darin ausgeführt. Das führt zu Problemen mit der Sichtbarkeit von Variablen innerhalb der Lambda-Funktion. In funktionalen Sprachen sind äußere Variablen standardmäßig innerhalb der Lambda-Funktion sichtbar. In PHP hingegen müssen erforderliche Variablen explizit mit dem neuen Schlüsselwort use in die Lambda-Funktion importiert werden.

Mit dem neuen Prefix static:: für Methodenaufrufe wird "Late static binding" eingeführt. Es kann für den statischen Aufruf einer Methode innerhalb einer Klassenmethode verwendet werden, ohne dass der Klassenname bekannt ist. Es reicht, wenn die Methode innerhalb der Klasse definiert oder von einer Klasse geerbt wurde.

Golem Karrierewelt
  1. Java EE 8 Komplettkurs: virtueller Fünf-Tage-Workshop
    12.-16.09.2022, virtuell
  2. Adobe Photoshop für Social Media Anwendungen: virtueller Zwei-Tage-Workshop
    24./25.08.2022, virtuell
Weitere IT-Trainings

Die neue Metamethode für Klassen __callStatic() erlaubt es, statische Aufrufe undefinierter Klassenmethoden abzufangen und auszuwerten, analog zu __call() für Methodenaufrufe auf instanzierte Objekte.

Darüber hinaus versprechen die Entwickler eine verbesserte Geschwindigkeit, eine optionale Garbage-Collection für zyklische Referenzen und ebenfalls optional mysqlnd als nativen Ersatz für libmysql. Verbessert wurde die Windows-Unterstützung einschließlich VC6 und VC9 Binarys und es werden einige neue Erweiterung mitgeliefert: ext/phar, ext/intl, ext/fileinfo, ext/sqlite3 und ext/enchant.

Zugleich entfallen einige Erweiterungen (ext/mhash, ext/msql, ext/pspell, ext/sybase), andere wurden in PECL verschoben (ext/ming, ext/fbsql, ext/ncurses und ext/fdf). Zudem wurde die Nutzung interner APIs vereinheitlicht.

Die PHP-Entwickler raten Nutzern von PHP 5, die neue Version zu testen, denn vermutlich wird PHP 5.3.0 den Zweig 5.2 ersetzen, das heißt Sicherheitsupdates werden nur noch für die neue Version erscheinen. Hilfestellung beim Umstieg sollen Upgrade Notes geben.

PHP 5.3.0 RC1 steht ab sofort unter qa.php.net zum Download bereit.

Bitte aktivieren Sie Javascript.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
  • ohne Werbung
  • mit ausgeschaltetem Javascript
  • mit RSS-Volltext-Feed


ratti 08. Mai 2009

Naja, „kein ist „nichts", und somit ist es nicht steigerbar. Nicht, nichtser, am...

GodsBoss 08. Mai 2009

Leider trägt PHP dieses Erbe bis heute. Besonders nachteilig ist außerdem, dass es nicht...

so-isses 26. Mär 2009

Die Antwort erhältst du, wenn du die Performance von nativem C++-Code mit der von...

mr_pain 25. Mär 2009

Ja, TYPO3 kann man nur mit schwerer Hardware hosten, wenn viel Traffic draufkommt...



Aktuell auf der Startseite von Golem.de
Macbook Air M2 im Test
Das Macbook ohne Lüfter, aber mit Notch und Magsafe

Im Vergleich zum Apple Macbook Pro ist das Air mit M2-Chip eine Generation weiter. Auch ohne Lüfter ist es ein leistungsstarkes Notebook.
Ein Test von Oliver Nickel

Macbook Air M2 im Test: Das Macbook ohne Lüfter, aber mit Notch und Magsafe
Artikel
  1. Blizzard: Diablo 4 setzt auf vier Saisons pro Jahr mit Zurücksetzungen
    Blizzard
    Diablo 4 setzt auf vier Saisons pro Jahr mit Zurücksetzungen

    Shop, kostenpflichtige Extras und die Saisons: Blizzard macht offizielle Angaben rund um die Live-Service-Pläne für Diablo 4.

  2. Botnetz: Google blockiert Rekord-DDoS-Angriff
    Botnetz
    Google blockiert Rekord-DDoS-Angriff

    Für einen Kunden konnte Google den größten HTTPS-basierten DDoS-Angriff mit 46 Millionen Anfragen pro Sekunde abwehren.

  3. Alternatives Android: GrapheneOS schickt Google in die Sandbox
    Alternatives Android
    GrapheneOS schickt Google in die Sandbox

    Gefangen in einer Sandbox sind Googles Play-Dienste unter GrapheneOS weniger invasiv, aber fast so komfortabel wie sonst. Trackerfrei sind sie jedoch nicht.
    Ein Erfahrungsbericht von Moritz Tremmel

Du willst dich mit Golem.de beruflich verändern oder weiterbilden?
Zum Stellenmarkt
Zur Akademie
Zum Coaching
  • Schnäppchen, Rabatte und Top-Angebote
    Die besten Deals des Tages
    Daily Deals • MindStar (MSI RTX 3090 Gaming 1.269€, Seagate Festplatte ext. 18 TB 295€) • PS5-Deals (Uncharted Legacy of Thieves 15,38€, Horzizon FW 39,99€) • HP HyperX Gaming-Maus -51% • Alternate (Kingston Fury DDR5-6000 32GB 219,90€ statt 246€) • Samsung Galaxy S22+ 5G 128 GB 839,99€ [Werbung]
    •  /