<?php function foo($one, $two){ bar($one); } function bar($one){ echo $one; //How do I access $two from the parent function scope? } ?> If I have the code above, how can I access the variable $two from within bar(), without passing it in as a variable (for reasons unknown).Thanks,Mike
3 Réponses :
Faire une classe - vous pouvez déclarer deux $ en tant que champ d'instance qui sera accessible à toutes les méthodes d'instance:
class Blah { private $two; public function foo($one, $two){ this->$two = $two; bar($one); } public function bar($one){ echo $one; // How do I access $two from the parent function scope? this->$two; } }
Bien que votre réponse ne réponde pas exactement à la question (je suis toujours curieuse si elle est possible en dehors de l'utilisation d'une classe), cela m'a rappelé que j'étais déjà dans une classe, alors je viens de faire un membre de la classe. Merci beaucoup pour l'aide.
Un moyen brut est de l'exporter en portée globale, par exemple:
J'utilise $ global pour accéder aux variables de mon script entier.
Comme ceci: p>
Avez-vous regardé une autre réponse? Vous les répétez et vous n'avez pas aussi utilisé de code pour 2 fonctions
Réponse courte: vous ne le faites pas.
L'ensemble de la définition d'une variable dans une portée particulière est de limiter l'accès afin que c'est pas b> accessible en dehors de cette portée. Donc non, ce n'est pas possible. Si vous voulez faire cela, ne le définissez pas dans la portée locale - utilisez une classe ou une portée globale.