Was ist neu in PHP 5.4?
Kommentare

Weitere Features
Des Weiteren kamen eine Menge kleinerer Features hinzu, die im Großen und Ganzen das Leben eines PHP-Programmierers vereinfachen können. Es gibt jetzt den Typehint callable, der solche

Weitere Features

Des Weiteren kamen eine Menge kleinerer Features hinzu, die im Großen und Ganzen das Leben eines PHP-Programmierers vereinfachen können. Es gibt jetzt den Typehint callable, der solche Parameter zulässt, die dieselben Kriterien erfüllen, die auch die Funktion is_callable() prüft. Das sind meist Closures und Strings, die Funktionsnamen beinhalten, aber auch die Array-Notation in der Form array(‚Klasse‘, ‚Methode‘) oder array($objekt, ‚Methode‘) wird unterstützt. Das Ganze dient der vereinfachten Behandlung von Closures ohne zusätzliche Aufrufe von is_callable() (Listing 5). Wie erwartet wird „Hello, World!“ ausgegeben. Dieses „Array Dereferencing“ funktioniert aber natürlich auch, wenn ein assoziatives oder gemischtes Array zurückgegeben wird.

Listing 5

Binärzahlen können, ähnlich wie Hex-Zahlen in der Form 0x2a geschrieben werden können, nun in der Form 0b101010 geschrieben werden. Die Kurzform <?= von <?php echo ist jetzt immer verfügbar, nicht nur wenn die unbeliebte short_open_tag-INI-Direktive gesetzt ist. Hintergrund war, dass der PHP-Parser <? fälschlicherweise als PHP-Code interpretieren konnte, wie etwa das in XML-Dateien anzutreffende <?xml. Mit <?= besteht dieses Problem jedoch nicht, daher steht dieser Änderung nichts im Weg. Die in 5.3 eingeführten Closures unterstützen jetzt die Verwendung der Variable $this, und die Verwendung des Hacks in Listing 6 kann man sich sparen. Hinzugekommen ist auch die Funktion hex2bin(), die Umkehrung der schon seit PHP 4 verfügbaren bin2hex() zur Konvertierung von Binärdaten in Hexadezimal-Repräsentation.

Listing 6

Die berühmt berüchtigte Fehlermeldung mit dem internen Token T_PAAMAYIM_NEKUDOTAYIM – selbst ein Wortwitz des „doppelten Doppelpunktes“ – und dem Operator :: bei Klassen und Methoden sowie einige andere Fehlermeldungen haben aussagekräftigere Beschreibungen bekommen, wurden aber nicht komplett geändert. Die INI-Direktive zend.multibyte ersetzt die Kompilierung mit –enable-zend-multibyte, der Support ist nun standardmäßig vorhanden und kann über die php.ini an- und ausgeschaltet werden. In der PHP CLI kam der Parameter –rz hinzu, der Informationen über die genannte Zend Extension anzeigt. Bei Benutzung der interaktiven readline CLI (bei Aufruf von PHP mit der Kommandozeilenoption -a) kann man mittels #inisetting=value die Konfiguration zur Laufzeit ändern.

Die Funktionen debug_backtrace() und debug_print_backtrace() haben einen optionalen Parameter $limit bekommen, der die Anzahl der zurückgegebenen Stack Frames beschränkt, falls eine positive Zahl übergeben wird. Die Funktion is_link() funktioniert nun auch für symbolische Links unter Windows ab Vista. Die OpenSSL Extension hat Support für AES bekommen, außerdem diverse Bugfixes und Optionen. Leider ist sie aber immer noch größtenteils undokumentiert. Die Funktionen idn_to_ascii() und idn_to_utf8() aus ext/intl zur Konvertierung von Umlaut-Domains haben je zwei neue optionale Parameter zur Angabe der zu benutzenden Variante (IDNA 2003 oder UTS #46) und zur eventuellen Rückgabe von Details bei letzterer bekommen. Für den Großteil der PHP-Entwickler (unter Linux und Windows) leider nicht sehr hilfreich, für Solaris-, OS X- und FreeBSD-Benutzer jedoch verfügbar, ist der Support von DTrace in PHP. Unerwähnt bleiben soll hier aber die Behebung zahlreicher Bugs. Eine Liste befindet sich jedoch im PHP5 Changelog auf php.net.


Themen der nächsten Seiten:

  • Neue Prozesse
  • Fazit
Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -