Open Source im professionellen Einsatz
Linux-Magazin 01/2016
363

Delegiertenwesen

PHP 7 setzt Generatoren universeller ein. An dieser Stelle sei erwähnt, dass der »yield« -Operator künftig stets rechtsassoziativ funktioniert. Listing 8 demonstriert, dass Generatoren nun nicht mehr nur in Schleifen, sondern auch in Generatoren selbst einsetzbar sind – Generator-Delegation im Fachjargon.

Listing 8

Verschachtelte Generatoren

01 <?php
02 $fibo1 = (function() {
03  yield 1;
04  yield 2;
05  yield from fibo2();
06  return 8;
07 })();
08
09 function fibo2() {
10  yield 3;
11  yield 5;
12 }
13
14 foreach($fibo1 as $val) {
15   echo $val;
16 }
17
18 echo $fibo1->getReturn();
19 ?>

In den ersten sechs Zeilen erzeugt das Listing zunächst ein Generatorobjekt, indem es eine anonyme Funktion aufruft und sie in der Variablen »$fibo1« ablegt. Wie gehabt erzeugen »yield« -Anweisungen die Rückgabewerte des Generators. Zeile 5 bezieht den Rückgabewert von einem zweiten Generator (Zeile 9). Dessen Aufruf stellt der Entwickler das Schlüsselwort »from« voran.

Der Code ab Zeile 13 iteriert wie gewohnt mittels einer Foreach-Schleife über das anfangs erwähnte Generatorobjekt. Zeile 14 gibt die ersten Fibonacci-Zahlen so lange über die Shell aus, bis sie Rückgabewerte von sämtlichen »yield« -Anweisungen empfangen hat. Mit der »return« -Anweisung in Zeile 6 erzeugt PHP 7 einen weiteren, finalen Wert. Den liest die Methode »getReturn()« in der letzten Zeile von Listing 8 aus dem Generatorobjekt aus.

Fazit

PHP 7 bereinigt viele Unschönheiten der populären Websprache um den Preis fehlender Rückwärtskompatibilität. Selbst einfachere PHP-Skripte könnten am neuen Unterbau anecken. Die Akzeptanz von PHP 7 dürfte aber hoch ausfallen, wenn sich die Performance gegenüber der Vorgängerversion 5.6 tatsächlich verdoppelt hat, wie es die Macher und einige Benchmarks [3] nahelegen. Auch die Typdeklarationen in Funktionen tun PHP-Programmen gut, da sie dem User mehr Sorgfalt abringen.

In Anbetracht der weiteren Änderungen, die auch Standard-Funktionen, -Klassen und -Interfaces betreffen, sei Entwicklern auf jeden Fall die eingehende Lektüre der Dokumentation zu PHP 7 [2] ans Herz gelegt. Trotz dieser Klippen dürfte die Major-Release viele Webentwickler in ihrer Überzeugung bestätigen, mit PHP das beste Mittel zur Server-seitigen Programmierung von Webanwendungen zur Hand zu haben.

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 4 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

Linux-Magazin kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

  • Pony

    Die statisch getypte und objektorientierte Programmiersprache Pony trabt auf eher abseitigen Pfaden, um mit sicherem und hochperformantem Code für nebenläufige Anwendungen ihre Fans zu beglücken.

  • ECMA-Script 6

    Der kommende Sprachstandard ECMA-Script 6 beseitigt viele historische Javascript-Eigenheiten. Die bisher vermissten Klassen, Module und Default-Parameter erleichtern das Coden vor allem den Umsteigern von anderen Programmiersprachen.

  • React

    Vom Unternehmen Facebook kommt das quelloffene Javascript-Framework React, das Weboberflächen geschickt mit Datenschätzen verknüpft. Insbesondere die Renderfunktion macht sich dabei nützlich.

  • Squirrel

    Wer eine Skriptsprache mit schlankem Interpreter sucht, der sich möglichst einfach in Anwendungen einbetten lässt, greift schon fast blind zu Lua. In deren Schatten wartet jedoch schon länger ein praxiserprobter Konkurrent namens Squirrel. Dieser Artikel stellt die Open-Source-Sprache in einem Crashkurs vor.

  • Node.js und Redis

    Javascript auch auf dem Server nutzen, das verspricht das Webserver-Framework Node.js und bietet zahlreichen Erweiterungen und viele Funktionen, aber auch hohe Performance. Dieser Artikel zeigt, wie sich im Verbund mit der Datenbank Redis eine einfache und schnelle Buchungsapplikation entwickeln lässt.

comments powered by Disqus

Ausgabe 08/2017

Digitale Ausgabe: Preis € 6,40
(inkl. 19% MwSt.)

Artikelserien und interessante Workshops aus dem Magazin können Sie hier als Bundle erwerben.