SlideShare une entreprise Scribd logo
1  sur  8
Uniform Variable Syntax
Webinar PHParty7 France - 28/11/15
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...
Uniform Variable Syntax
$foo->bar () ();
$foo est un object
bar() est une function qui retourne un callable
Le callable exécute
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
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/
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)();
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']()
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.

Contenu connexe

Tendances

Meet up symfony 11 octobre 2016 - Les formulaire
Meet up symfony 11 octobre 2016 - Les formulaireMeet up symfony 11 octobre 2016 - Les formulaire
Meet up symfony 11 octobre 2016 - Les formulaireJulien Vinber
 
PHP 1 - Apprendre les bases
PHP 1 - Apprendre les basesPHP 1 - Apprendre les bases
PHP 1 - Apprendre les basesPierre Faure
 
Exploiter php 5
Exploiter php 5Exploiter php 5
Exploiter php 5halleck45
 
[FR] Injection de dépendances, Containers & PHP-DI
[FR] Injection de dépendances, Containers & PHP-DI[FR] Injection de dépendances, Containers & PHP-DI
[FR] Injection de dépendances, Containers & PHP-DImatthieunapoli
 
jQuery — fonctionnalités avancées
jQuery — fonctionnalités avancéesjQuery — fonctionnalités avancées
jQuery — fonctionnalités avancéesRémi Prévost
 
Bases de php - Partie 3
Bases de php - Partie 3Bases de php - Partie 3
Bases de php - Partie 3Régis Lutter
 
JavaScript prise en main et fondamentaux
JavaScript prise en main et fondamentauxJavaScript prise en main et fondamentaux
JavaScript prise en main et fondamentauxVincent Petetin
 
PHP - fonctions mysql
PHP - fonctions mysqlPHP - fonctions mysql
PHP - fonctions mysqlmazenovi
 
PHP #1 : introduction
PHP #1 : introductionPHP #1 : introduction
PHP #1 : introductionJean Michel
 
Introduction au langage PHP (1ere partie) élaborée par Marouan OMEZZINE
Introduction au langage PHP (1ere partie) élaborée par Marouan OMEZZINEIntroduction au langage PHP (1ere partie) élaborée par Marouan OMEZZINE
Introduction au langage PHP (1ere partie) élaborée par Marouan OMEZZINEMarouan OMEZZINE
 
php2 : formulaire-session-PDO
php2 : formulaire-session-PDOphp2 : formulaire-session-PDO
php2 : formulaire-session-PDOAbdoulaye Dieng
 
Symfony2 - Un Framework PHP 5 Performant
Symfony2 - Un Framework PHP 5 PerformantSymfony2 - Un Framework PHP 5 Performant
Symfony2 - Un Framework PHP 5 PerformantHugo Hamon
 
Javascript ne se limite pas à jquery
Javascript ne se limite pas à jqueryJavascript ne se limite pas à jquery
Javascript ne se limite pas à jqueryneuros
 
La référence Clear php
La référence Clear phpLa référence Clear php
La référence Clear phpDamien Seguy
 

Tendances (17)

Meet up symfony 11 octobre 2016 - Les formulaire
Meet up symfony 11 octobre 2016 - Les formulaireMeet up symfony 11 octobre 2016 - Les formulaire
Meet up symfony 11 octobre 2016 - Les formulaire
 
PHP 1 - Apprendre les bases
PHP 1 - Apprendre les basesPHP 1 - Apprendre les bases
PHP 1 - Apprendre les bases
 
Exploiter php 5
Exploiter php 5Exploiter php 5
Exploiter php 5
 
[FR] Injection de dépendances, Containers & PHP-DI
[FR] Injection de dépendances, Containers & PHP-DI[FR] Injection de dépendances, Containers & PHP-DI
[FR] Injection de dépendances, Containers & PHP-DI
 
jQuery — fonctionnalités avancées
jQuery — fonctionnalités avancéesjQuery — fonctionnalités avancées
jQuery — fonctionnalités avancées
 
Compteur de visites
Compteur de visitesCompteur de visites
Compteur de visites
 
Bases de php - Partie 3
Bases de php - Partie 3Bases de php - Partie 3
Bases de php - Partie 3
 
JavaScript prise en main et fondamentaux
JavaScript prise en main et fondamentauxJavaScript prise en main et fondamentaux
JavaScript prise en main et fondamentaux
 
[20110219] pfffについて
[20110219] pfffについて[20110219] pfffについて
[20110219] pfffについて
 
PHP - fonctions mysql
PHP - fonctions mysqlPHP - fonctions mysql
PHP - fonctions mysql
 
PHP #1 : introduction
PHP #1 : introductionPHP #1 : introduction
PHP #1 : introduction
 
Introduction au langage PHP (1ere partie) élaborée par Marouan OMEZZINE
Introduction au langage PHP (1ere partie) élaborée par Marouan OMEZZINEIntroduction au langage PHP (1ere partie) élaborée par Marouan OMEZZINE
Introduction au langage PHP (1ere partie) élaborée par Marouan OMEZZINE
 
php2 : formulaire-session-PDO
php2 : formulaire-session-PDOphp2 : formulaire-session-PDO
php2 : formulaire-session-PDO
 
Symfony2 - Un Framework PHP 5 Performant
Symfony2 - Un Framework PHP 5 PerformantSymfony2 - Un Framework PHP 5 Performant
Symfony2 - Un Framework PHP 5 Performant
 
Javascript ne se limite pas à jquery
Javascript ne se limite pas à jqueryJavascript ne se limite pas à jquery
Javascript ne se limite pas à jquery
 
Playing With PHP 5.3
Playing With PHP 5.3Playing With PHP 5.3
Playing With PHP 5.3
 
La référence Clear php
La référence Clear phpLa référence Clear php
La référence Clear php
 

En vedette

Morphology
MorphologyMorphology
Morphologyrmsutton
 
Morphology (linguistics)
Morphology (linguistics)Morphology (linguistics)
Morphology (linguistics)Er Animo
 
phonetics and phonology
phonetics and phonologyphonetics and phonology
phonetics and phonologyWu Heping
 
Phonetics and phonology
Phonetics and phonologyPhonetics and phonology
Phonetics and phonologyMarlene Reyes
 

En vedette (6)

Syntax Score
Syntax ScoreSyntax Score
Syntax Score
 
Morphology
MorphologyMorphology
Morphology
 
Phonetics powerpoint
Phonetics powerpointPhonetics powerpoint
Phonetics powerpoint
 
Morphology (linguistics)
Morphology (linguistics)Morphology (linguistics)
Morphology (linguistics)
 
phonetics and phonology
phonetics and phonologyphonetics and phonology
phonetics and phonology
 
Phonetics and phonology
Phonetics and phonologyPhonetics and phonology
Phonetics and phonology
 

Similaire à Uniform Variable Syntax

.php1 : les fondamentaux du PHP
.php1 : les fondamentaux du PHP.php1 : les fondamentaux du PHP
.php1 : les fondamentaux du PHPAbdoulaye Dieng
 
Migration PHP4-PHP5
Migration PHP4-PHP5Migration PHP4-PHP5
Migration PHP4-PHP5julien pauli
 
Javascript pour les développeurs Java : quels sont les pièges à éviter ?
Javascript pour les développeurs Java : quels sont les pièges à éviter ?Javascript pour les développeurs Java : quels sont les pièges à éviter ?
Javascript pour les développeurs Java : quels sont les pièges à éviter ?FlorianBoulay
 
Atoum, le framework de tests unitaires pour PHP 5.3 simple, moderne et intuit...
Atoum, le framework de tests unitaires pour PHP 5.3 simple, moderne et intuit...Atoum, le framework de tests unitaires pour PHP 5.3 simple, moderne et intuit...
Atoum, le framework de tests unitaires pour PHP 5.3 simple, moderne et intuit...Frederic Hardy
 
Les principes de base de PHP
 Les principes de base de PHP  Les principes de base de PHP
Les principes de base de PHP EL JAOUARI Ahmed
 
seance4-1 php.ppt
seance4-1 php.pptseance4-1 php.ppt
seance4-1 php.pptAmineReal
 
Patterns and OOP in PHP
Patterns and OOP in PHPPatterns and OOP in PHP
Patterns and OOP in PHPjulien pauli
 
Analyse statique et applications
Analyse statique et applicationsAnalyse statique et applications
Analyse statique et applicationsDamien Seguy
 
PHP - get started
PHP - get startedPHP - get started
PHP - get startedmazenovi
 

Similaire à Uniform Variable Syntax (17)

Ce bon vieux propel
Ce bon vieux propelCe bon vieux propel
Ce bon vieux propel
 
Php1
Php1Php1
Php1
 
.php1 : les fondamentaux du PHP
.php1 : les fondamentaux du PHP.php1 : les fondamentaux du PHP
.php1 : les fondamentaux du PHP
 
PHP.pptx
PHP.pptxPHP.pptx
PHP.pptx
 
Structure de données en PHP
Structure de données en PHPStructure de données en PHP
Structure de données en PHP
 
Migration PHP4-PHP5
Migration PHP4-PHP5Migration PHP4-PHP5
Migration PHP4-PHP5
 
Php4 Mysql
Php4 MysqlPhp4 Mysql
Php4 Mysql
 
La première partie de la présentation PHP
La première partie de la présentation PHPLa première partie de la présentation PHP
La première partie de la présentation PHP
 
Javascript pour les développeurs Java : quels sont les pièges à éviter ?
Javascript pour les développeurs Java : quels sont les pièges à éviter ?Javascript pour les développeurs Java : quels sont les pièges à éviter ?
Javascript pour les développeurs Java : quels sont les pièges à éviter ?
 
Ruby Pour RoR
Ruby Pour RoRRuby Pour RoR
Ruby Pour RoR
 
Atoum, le framework de tests unitaires pour PHP 5.3 simple, moderne et intuit...
Atoum, le framework de tests unitaires pour PHP 5.3 simple, moderne et intuit...Atoum, le framework de tests unitaires pour PHP 5.3 simple, moderne et intuit...
Atoum, le framework de tests unitaires pour PHP 5.3 simple, moderne et intuit...
 
Les principes de base de PHP
 Les principes de base de PHP  Les principes de base de PHP
Les principes de base de PHP
 
seance4-1 php.ppt
seance4-1 php.pptseance4-1 php.ppt
seance4-1 php.ppt
 
Patterns and OOP in PHP
Patterns and OOP in PHPPatterns and OOP in PHP
Patterns and OOP in PHP
 
Programmation shell
Programmation shellProgrammation shell
Programmation shell
 
Analyse statique et applications
Analyse statique et applicationsAnalyse statique et applications
Analyse statique et applications
 
PHP - get started
PHP - get startedPHP - get started
PHP - get started
 

Plus de Darkmira

Return Type Declaration
Return Type DeclarationReturn Type Declaration
Return Type DeclarationDarkmira
 
Scalar Types Hints
Scalar Types HintsScalar Types Hints
Scalar Types HintsDarkmira
 
Le spaceship operator
Le spaceship operatorLe spaceship operator
Le spaceship operatorDarkmira
 
Anonymous classes
Anonymous classesAnonymous classes
Anonymous classesDarkmira
 
BC Breaks - Incompatibilites PHP7
BC Breaks - Incompatibilites PHP7BC Breaks - Incompatibilites PHP7
BC Breaks - Incompatibilites PHP7Darkmira
 
Benchmark php7
Benchmark php7Benchmark php7
Benchmark php7Darkmira
 
Webinar PHParty7 - Errors handlings
Webinar PHParty7 - Errors handlingsWebinar PHParty7 - Errors handlings
Webinar PHParty7 - Errors handlingsDarkmira
 

Plus de Darkmira (7)

Return Type Declaration
Return Type DeclarationReturn Type Declaration
Return Type Declaration
 
Scalar Types Hints
Scalar Types HintsScalar Types Hints
Scalar Types Hints
 
Le spaceship operator
Le spaceship operatorLe spaceship operator
Le spaceship operator
 
Anonymous classes
Anonymous classesAnonymous classes
Anonymous classes
 
BC Breaks - Incompatibilites PHP7
BC Breaks - Incompatibilites PHP7BC Breaks - Incompatibilites PHP7
BC Breaks - Incompatibilites PHP7
 
Benchmark php7
Benchmark php7Benchmark php7
Benchmark php7
 
Webinar PHParty7 - Errors handlings
Webinar PHParty7 - Errors handlingsWebinar PHParty7 - Errors handlings
Webinar PHParty7 - Errors handlings
 

Uniform Variable Syntax

  • 1. Uniform Variable Syntax Webinar PHParty7 France - 28/11/15
  • 2. 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...
  • 3. Uniform Variable Syntax $foo->bar () (); $foo est un object bar() est une function qui retourne un callable Le callable exécute
  • 4. 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
  • 5. 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/
  • 6. 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)();
  • 7. 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']()
  • 8. 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.