Playing with the new PHP5.4 features
Join the DZone community and get the full member experience.
Join For FreePHP5.4 it’s close and it’s time to start playing with the new cool features. I’ve created a new Virtual Machine to play with the new features available within PHP5.4. I wrote a post with the most exciting features (at least for me) when I saw the feature list in the alpha version. Now the Release Candidate is with us, so it’s the time of start playing with them. I also discover really cool features that I pass over in my first review
Let’s start:
Class member access on instantiation.
Cool!
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();
Short array syntax
Yeah!
$a = [1, 2, 3]; print_r($a);
Support for Class::{expr}() syntax
foreach ([new Human("Gonzalo"), new Human("Peter")] as $human) { echo $human->{'hello'}(); }
Indirect method call through array
$f = [new Human("Gonzalo"), 'hello']; echo $f();
Callable typehint
function hi(callable $f) { $f(); } hi([new Human("Gonzalo"), 'hello']);
Traits
trait FlyMutant { public function fly() { return 'I can fly!'; } } class Mutant extends Human { use FlyMutant; } $mutant = new Mutant("Storm"); echo $mutant->fly();
Array dereferencing support
function data() { return ['name' => 'Gonzalo', 'surname' => 'Ayuso']; } echo data()['name'];
IDEs don’t support (yet) those features. That’s means IDEs will mark
those new features as syntax errors but I hope that they will support
them soon.
More info here
From http://gonzalo123.wordpress.com/2011/11/28/playing-with-the-new-php5-4-features/
Opinions expressed by DZone contributors are their own.
Comments