The article Ake novinky prinesie PHP 5.3? is written by PaBi3
Rozhodol som sa vyskusat najnovsi snapshot PHP 5.3, ktory si mozete stiahnut na adrese snaps.php.net. Budete mat moznost byt ocareny novymi vlastnostami PHP jazyka. Ked som zistil co vsetko novy snapshot prinasa, tak myslim ze PHP 6 uz nebude ziadnym velkym prekvapenim. Osobne som sa najviac tesil na namespaces. Ked som ich vyskusal, uz som sa tak netesil. Je pekne, ze v PHP budete moct pouzit namespaces ale nie tak dokonale ako napriklad v C#. Namespace v PHP je mozne pouzit iba jeden v jednom subore.
Kiez by to mohlo byt takto: <?php namespace ns1 { namespace ns11 { class A { public function __construct() { … } } } } namespace ns2 { class A { public function __construct() { … } } class B { public function __construct() { … } } } Svoju predstavu o namespaces musim zahodit, pretoze realita je takato: <?php namespace ns1; class A { public function __construct() { … } } Najvyznamnejsie novinky Pre mna medzi najvyznamnejsie novinky v PHP 5.3 patria: Namespaces Late Static Binding Dynamic static calls a magicka metoda __callStatic() Keby som to mal hodnotit, tak implementacia namespaces v PHP sa mi nepaci, late static binding mozete najst fakt len v PHP a dynamic static calls su nedorobene. Jedina hotova novinka je asi magicka metoda __callStatic(), ktoru tak casto nevyuzijem. Preco su dynamic static calls nedorobky? Pretoze sice mozete pouzit kod typu: $class = 'A'; $class::method(); avsak nemozete pouzit nieco ako: <?php $namespace = 'Basic'; $class = 'A'; $namespace::$class::method(); Priklad pouzitia vacsiny noviniek a.php <?phpnamespace Basic;abstract class A{    static protected $foo = 'AAA';    static public function selfWay()    {        print self::$foo;    }    static public function staticWay()    {        print static::$foo;    }    static public function __callStatic($method, array $params)    {        echo "Bola volana neexistujuca metoda $method(".implode(',',$params).")";    }}abstract class B extends A{    static protected $foo = 'BBB';} b.php <?phpheader('Content-Type:text/html; charset=utf-8');require_once('a.php');import Basic as myBasic;import Basic as mySecondBasic;abstract class C{    static public function demo()    {        echo "<h2>myBasic</h2>\n";        myBasic::B::selfWay();        echo "<br />\n";        myBasic::B::staticWay();        echo "<hr />\n";        echo "<h2>mySecondBasic</h2>\n";        mySecondBasic::B::selfWay();        echo "<br />\n";        mySecondBasic::B::staticWay();        echo "<hr />\n";        echo "<h2>__callStatic</h2>\n";        myBasic::B::Unknown('a','b','c');    }}$class = 'C';$class::demo();
Aké novinky prinesie PHP 5.3? Návrat

Aké novinky prinesie PHP 5.3?