Variables variables en php
Parfois, il est pratique d'utiliser des noms de variables mutables. C'est-à-dire que le nom d'une variable peut être défini et utilisé dynamiquement . Une variable ordinaire est définie par déclaration, par exemple :
<?php $a = 'hello'; ?>
Une variable variable obtient la valeur d'une variable ordinaire comme nom de variable de la variable variable. Dans l'exemple ci-dessus, bonjour utilise deux signes dollar ($), il peut être utilisé comme variable variable.
Exemple 1 :
<?php $$a = 'world'; ?>
A ce moment, les deux variables sont définies : le contenu de $a est "hello" et le contenu de $hello est "monde".
Exemple 2 :
<?php echo "$a ${$a}"; ?>
L'instruction suivante génère exactement le même résultat :
<?php echo "$a $hello"; ?>
Ils afficheront tous : bonjour tout le monde.
Pour utiliser une variable mutable avec un tableau , une ambiguïté doit être levée.
C'est lors de l'écriture de $$a[1], l'analyseur doit savoir s'il veut $a[1] comme variable, ou s'il veut $$a comme variable et retire la variable. valeur avec l'indice [1].
La syntaxe pour résoudre ce problème est d'utiliser ${$a[1]} pour le premier cas et ${$a}[1] pour le second cas.
Les propriétés de classe sont également accessibles via des noms de propriétés mutables. Les noms de propriétés mutables seront résolus dans le cadre de l’appel. Par exemple, pour l'expression $foo->$bar,
analysera $bar dans la portée locale et sa valeur sera utilisée comme nom de propriété de $foo .
La même chose est vraie pour $bar lorsqu'il s'agit d'une unité de tableau.
Vous pouvez également utiliser des accolades pour délimiter clairement les noms d'attributs. Très utile lorsque la propriété se trouve dans un tableau, ou que le nom de la propriété contient plusieurs parties ou que le nom de la propriété contient des caractères illégaux (comme ceux de json_decode() ou SimpleXML).
Exemple :
<?php class foo { var $bar = 'I am bar.'; var $arr = array('I am A.', 'I am B.', 'I am C.'); var $r = 'I am r.'; } $foo = new foo(); $bar = 'bar'; $baz = array('foo', 'bar', 'baz', 'quux'); echo $foo->$bar . " "; echo $foo->$baz[1] . " "; $start = 'b'; $end = 'ar'; echo $foo->{$start . $end} . " "; $arr = 'arr'; echo $foo->$arr[1] . " "; echo $foo->{$arr}[1] . " "; ?>
La routine ci-dessus sortira :
I am bar. I am bar. I am bar. I am r. I am B.
Merci d'avoir lu, j'espère que vous avez appris c'est une variable mutable.
Cet article est reproduit à partir de : https://www.cnblogs.com/ryanzheng/p/9133381.html
Tutoriel recommandé : "tutoriel php》
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!