[PHP] PHP 5.4 alpha1 released

Dieses Thema im Forum "Webentwicklung" wurde erstellt von Murdoc, 15. Juli 2011 .

Schlagworte:
  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.
     
  2. 17. Juli 2011
    AW: PHP 5.4 alpha1 released

    *thumbs up* kann ich da nur sagen. Geiler Scheiß - wird immer besser
     
  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.
     
  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
     
  5. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.