Les variables variables semblent assez cool, mais je ne peux pas penser à un scénario où on les utiliserait réellement dans un environnement de production. Quel serait un tel scénario? Comment ont-ils été utilisés? P>
6 Réponses :
Son but, je suppose, est de permettre aux programmeurs novices de modifier de manière dynamique des données sans utiliser des types de composites "complexes" tels que des types composites (réseaux et objets). P>
Je ne les utilise jamais. P>
// Autoriser les programmeurs novices à modifier de manière dynamique des données sans utiliser des types de composites (des tableaux et des objets) // Il n'est pas compliqué une fois qu'il a été appris.
Je pense que c'est la signification des citations.
Ils sont totalement inutiles.
Pensez-y à utiliser dans un système de modèle dans lequel vous utilisez des fichiers PHP et que vous devez définir des variables: supposant que vous avez utilisé ces noms de variable dans votre modèle, vous pouvez appeler Il et transmettez les variables à utiliser. p> puis dans votre modèle: p> Hello <?php echo $name; ?>!
Cette même chose peut être faite avec extrait code> a >
Et maintenant, vous avez un bogue $ vars code> a une clé
"fichier" code>. C'est pourquoi les variables variables (et
extrait code>, à ce sujet) sont dangereuses. Serait-ce tellement plus difficile d'utiliser quelque chose comme
$ m ['var'] code> dans le modèle?
@Daniel: Le code de code dit explicitement que cela peut être fait avec extrait (). C'était un exemple. @Artefecto: Cela n'a pas été produit pour démontrer la sécurité, mais à la place de l'utilisation de variables variables. Je n'ai jamais préconisé le passage dans des variables, comme rien dans la matrice $ _GET.
Personnellement, je les utilise assez souvent. Tous les appels des types suivants utilisent des variables variables variables: SO n'importe quel moment vous effectuez une méthode dynamique / un appel de fonction, vous utilisez des variables variables ... p> Un usage courant pour cela permet d'accéder aux propriétés protégées via le lequel par définition utilise des variables variables pour permettre un accès en lecture aux membres protégés ... P> Je n'ai jamais utilisé directement la syntaxe __ obtenir code> méthode magique. J'ai vu ce qui suit assez souvent: p>
$$ var code> (et ne pense pas que je ne puissiez jamais). Je l'ai vu l'habitude d'accéder aux variables globales par nom
nom global $$; echo $$ NOM; code>, mais la même chose peut être faite avec le
_ globals [$ nom] code> Syntaxe, donc ce n'est pas un bon cas d'utilisation (sans parler d'utiliser des variables globales est généralement considéré comme une mauvaise pratique) ... p> p>
Ce ne sont pas des variables variables. Les méthodes ne sont pas des variables.
Bien qu'ils puissent être (genre de) si cela va de l'avant: wiki.php.net / rfc / fermetures / ...
C'est une fonction variable. Tu as raison. Il fonctionne toujours sur le même principe (où la variable est déréférencée pour déterminer le chemin d'exécution) ...
Je l'ai trouvé utile dans un seul scénario. J'avais des résultats de YouTube API au format JSON, comme celui-ci donc je l'ai utilisé comme p> donc cela a fonctionné ici: ) p> p>
Vous pouvez juste faire $ obj -> {'média $ title'} code>.
Une variable variable est essentiellement un tableau (carte / dictionnaire). Les idées suivantes sont des idées équivalentes: Ainsi, si vous enveloppez vos "variables variables" dans une matrice parent, vous pouvez supprimer avec eux. P> J'ai vu des gens Utilisez des propriétés variables dans des classes: p> mais à nouveau, vous pouvez utiliser un tableau: p> <?php
class Foo
{
public $a = 1;
}
$foo = new Foo();
$prop = 'a';
echo $foo->{$prop};
?>
Je l'utilise principalement pour réduire la pâte de copie dans la désinfectante GET / Publier des données dans le début d'un fichier PHP:
Il rend les variables désinfectées avec les noms appropriés: au lieu de toutes ces lignes: p> J'espère que cela aide p> < / p>
Pourquoi pas seulement array_map code>?