25. Juni 2013 | 1 Comment Für diejenigen, die es noch nicht mitbekommen haben: Seit letztem Donnerstag ist PHP 5.5.0 verfügbar! Die Betas und Release-Candidates der letzten Wochen gehören damit quasi der Geschichte an und können gegen das offizielle Paket ausgetauscht werden. Ich hatte bereits Anfang des Jahres einen Blog-Eintrag zu den neuen Features geschrieben – Doch hier noch mal ein kleiner Reminder der neuen Features: Generatoren Mit Hilfe des yield Statements ist es uns möglich mit relativ kleinem Aufwand komplexe Iteratoren zu entwickeln. Die Syntax ist noch etwas ungewohnt, weil es sich im gewissen Rahmen ähnlich verhält wie return. Was den Programmablauf angeht, gibt es noch weitere Fälle die uns zum umdenken ermuntern. Wie zum Beispiel… Finally Code-Block für Exceptions In Sprachen wie Java gibt es den „finally“ Block schon ewig – Dieser optionale Block einer Exception wird im Grunde immer ausgeführt. Egal ob der Code sauber durchgelaufen ist, oder eine Exception gefangen wurde – das lässt sich beispielsweise benutzen, wenn man mit Dateien oder Datenbanken arbeitet: Im finally Block könnte man die Datei- oder Datenbankverbindung sauber abschließen anstatt die Verbindung offen zu lassen oder den Code sowohl in try als auch catch zu implementieren. list() Funktion innerhalb von foreach schleifen Iteriert man mit Hilfe einer foreach Schleife durch ein mehrdimensionales Array, ist es nun möglich die verschiedenen Array-Inhalte direkt eigenen Variablen zuzuweisen: $users = array( array('Max', 'Mustermann'), array('Admin', 'Istrator'), ); // Vor PHP 5.5 foreach ($users as $user) { list($first_name, $last_name) = $user; echo 'Vorname: ' . $first_name . ', Nachname: ' . $last_name; } // Ab PHP 5.5 foreach ($users as list($first_name, $last_name)) { echo 'Vorname: ' . $first_name . ', Nachname: ' . $last_name; } ::class Konstante für Klassennamen Die „class“ Konstante liefert den Namen einer Klasse, inklusive deren Namespace, zurück: namespace NS { class ClassName { ; } echo ClassName::class; } Dieser Code würde folgende Ausgabe machen NS\ClassName empty() kann nun mit Funktionen umgehen Immer und immer wieder passiert es mir, das ich Funktionen oder Methoden innerhalb von empty() aufrufen möchten (sei es um mir bewusst unnötige Variablen zu sparen oder Faulheit ;)) – doch immer wieder werde ich durch PHP Fehlermeldungen daran erinnert, dass das nicht geht. Nun, um es kurz zu machen: Ab PHP 5.5 funktioniert es endlich! Weiteres… Sonstige große Features wird dieses Release nicht mitbringen, stattdessen natürlich viele Bugfixes und sonstige (u.a. Performance-) Verbesserungen. Weiterhin wird der Support für Windows XP und 2003 eingestellt. Aber mehr dazu findet ihr natürlich an der Quelle: php.net Und mit diesen Worten möchte ich mich für diese Woche verabschieden und wünsche euch da draußen eine angenehme Woche so wie natürlich Happy Coding!