Quelques nouvelles fonctionnalités de PHP5.4

ARCHIVE
PHP5.4 est sorti :) Au programme, de nouvelles syntaxes, pour du développement toujours plus rapide et agréable. Accès aux méthodes de classes dès l'instanciation [sourcecode language=php] class Human { function __construct($name) { $this->name = $name; } public function hello() { return "Hi" . $this->name; } } // old style $human = new Human("Gonzalo"); echo $human->hello(); // new cool style echo (new Human("Gonzalo"))->hello(); [/sourcecode] A noter que l'on peut également appeler plusieurs méthodes de cette façon, du genre: [sourcecode language=php] $myCar = (new Car)>setSpeed(100)->setColor('blue'); [/sourcecode] Nouvelle syntaxe de création de tableaux [sourcecode language=php] $a = [1, 2, 3]; print_r($a); [/sourcecode] Support de la syntaxe Class::{expr}() [sourcecode language=php] $method = 'method'; $test = new Test(); $test->method(); $test->$method(); $test->{'method'}(); Test::method(); Test::$method(); Test::{'method'}(); [/sourcecode] Résultat de cette commande : [sourcecode language=php] method method method method method method [/sourcecode] Pour ma part, je suis particulièrement intéressé par Test::$method(); :) Appel indirect de méthodes via les tableaux [sourcecode language=php] $f = [new Human("Gonzalo"), 'hello']; echo $f(); [/sourcecode] Un nouveau type de variable: "callable" [sourcecode language=php] function hi(callable $f) { $f(); } hi([new Human("Gonzalo"), 'hello']); [/sourcecode] Utilisation de tableaux déréferencés [sourcecode language=php] function data() { return ['name' => 'Gonzalo', 'surname' => 'Ayuso']; } echo data()['name']; [/sourcecode] Modification de $GLOBALS Le super-tableau $GLOBALS n'est à présent instancié que si on l'utilise. Ce qui suggère un gain de performance, puisqu'enlevant un tableau assez gros. Bien sûr ce n'est là qu'un aperçu de toutes les nouveautés de php5.4, et l'utilisation de ces nouvelles syntaxes pose la question des performances (allez, qui pour un benchmark ? :p)... Via
Une question? Une remarque? Un avis? Twittons-en!

When you click on links to various merchants on this site and make a purchase, this can result in this site earning a commission.
Affiliate programs and affiliations include, but are not limited to, the eBay Partner Network and Amazon.