uniform variable syntax

8
Uniform Variable Syntax Webinar PHParty7 France - 28/11/15

Upload: darkmira

Post on 12-Apr-2017

134 views

Category:

Internet


0 download

TRANSCRIPT

Page 1: Uniform Variable Syntax

Uniform Variable SyntaxWebinar PHParty7 France - 28/11/15

Page 2: Uniform Variable Syntax

Pourquoi ?

En fait, cela résout de nombreuses incohérences sur la façon dont les expressions sont évaluées.

Mais cela peut aussi causer des problèmes, notamment de compréhension...

Page 3: Uniform Variable Syntax

Uniform Variable Syntax

$foo->bar () ();

$foo est un objectbar() est une function qui retourne un callableLe callable exécute

Page 4: Uniform Variable Syntax

Uniform Variable Syntax

$foo () [‘bar’] () ;

$foo est une fonction retourne un array[‘bar’] est un élément de cet array[‘bar’] contient un callable() execute le callable

Page 5: Uniform Variable Syntax

Uniform Variable Syntax

Exemple 1

$obj1 = new StdClass();$obj1->name = ‘Darth’;

$obj2 = new StdClass();$obj2->name = ‘Vader’;

echo [$obj1, $obj2][0]->name;https://3v4l.org/

Page 6: Uniform Variable Syntax

Uniform Variable Syntax

Exemple 2

class luke { static $vs = 'vader'; }class vader{ static $say; }vader::$say = function ()

{ echo "I am your father"; };$skywalker = 'luke';($skywalker::$vs::$say)();

Page 7: Uniform Variable Syntax

Uniform Variable Syntax

BC Breaks

Old New

$$foo['bar']['baz'] ${$foo['bar']['baz']} ($$foo)['bar']['baz']

$foo->$bar['baz'] $foo->{$bar['baz']} ($foo->$bar)['baz']

$foo->$bar['baz']() $foo->{$bar['baz']}() ($foo->$bar)['baz']()

Foo::$bar['baz']() Foo::{$bar['baz']}() (Foo::$bar)['baz']()

Page 8: Uniform Variable Syntax

Mode explicite

• variable-variables est peu utilisé• variable-properties l’est plus

Si vous avez des difficultés, vous pouvez utiliser des crochets (curly braces) pour vous assurer le même comportement dans PHP 5.6 et PHP 7.