#1 15. Juli 2011 PHP 5.4 alpha1 released der ein oder andere hat es vielleicht mitbekommen: php5.4 wurde released. und mit dem release kamen einige neuerungen an der sprache selbst, die den einen oder anderen interessieren könnten. daher beschreibe ich kurz die wichtigsten um nacher vielleicht ein wenig zu plaudern. Function array dereferencing das wohl am längsten gewünschte und immer wieder verworfene feature PHP: function ret_array () { return array( 'foo' => 'bar' );} $foo = ret_array ()[ 'foo' ]; // bar Added closure $this support back. in den ersten alpha-versionen von php5.3 war dieses feature schon implementiert, wurde aber in den beta-versionen wieder entfernt PHP: class Foo { function ret_closure () { return function() { // closures haben nun zugriff auf "$this" return $this -> bar (); }; } public function bar () { return 'nice!' ; }} $foo = new Foo ; $bar = $foo -> ret_closure (); print $bar (); // nice! Added indirect method call through array weniger call_user_func(), weniger schreibarbeit PHP: class Foo { public static function bar () { print 'bar!' ; } public function baz () { print 'baz!' ; }} $call = array( 'Foo' , 'bar' ); $call (); // bar! $call = array(new Foo , 'baz' ); $call (); // baz! Added support for Traits. php engagiert sich nun aktiv für den umweltschutz und unterstützt code-recycling da ich nicht 100%ig weiß wie genau traits implementiert wurden (im rfc waren ja mehrere methoden angeführt), beschreibe ich an dieser stelle mal die einfachste verwendung. kurz: mit traits sind mehrfachvererbungen möglich. PHP: trait BenutzMichDuSau { public function ohja () { print 'hihi' ; }} class Foo { public function tolleFunktion () { print 'asdf' ; }} class Bar extends Foo { use BenutzMichDuSau ; public function nochNeTolleFunktion () { print 'irrelevant' ; }} $foo = new Bar ; $foo -> ohja (); // hihi soweit ich weiß erben klassen nicht von traits, sondern nutzen einfach deren code als wär es ihr eigener. im grunde also copy&paste. mal warten bis die dokumentation erneuert wird. + Multi-Zitat Zitieren
#2 17. Juli 2011 AW: PHP 5.4 alpha1 released *thumbs up* kann ich da nur sagen. Geiler Scheiß - wird immer besser + Multi-Zitat Zitieren
#3 17. Juli 2011 AW: PHP 5.4 alpha1 released Also das "Function array dereferencing" ist wirklich etwas was ich des öfteren mal vermisst habe - Finde ich gut, dass es das jetzt gibt!. Die Traits hätte ich früher sicherlich das ein oder andere mal auch gebrauchen können. Ob ich das jetzt aber nochmal anfange zu benutzen bezweifel ich. Und auch von den anderen Features werde ich keinen Gebrauch machen. Aber schön zu sehen das sich was tut bei PHP . Vielleicht wird das mit 6.0 ja doch noch was. // Edit: Für register_globals() wurde es ja auch mal höchste Zeit das abzuschaffen. + Multi-Zitat Zitieren
#4 18. Juli 2011 AW: PHP 5.4 alpha1 released php6 kommt mit sicherheit, da gibt es derzeit nur ungereimtheiten ob es denn nun utf-8 oder utf-16 werden soll. daher geht es nun mit der 5er-version weiter bis man einen gemeinsamen nenner gefunden hat. die ersten releases von php6 kommen voraussichtlich 2014 (als nachfahre von php5) oder 2012 (zweigleisig php5 und php6 [wie zuvor php4 und php5]) PHP: rfc:releaseprocess + Multi-Zitat Zitieren