Est-il un moyen d'accéder à une instance d'une classe à l'intérieur des fonctions en PHP? Comme ceci:
include("class.php");
$bla=new Classname();
function aaa(){
$bla->DoSomething(); //Doesn't work.
}
$bla->DoSomething(); //Works.
OriginalL'auteur MilMike | 2010-02-11
Si j'interprète votre question correctement, alors la bonne façon de le faire est de créer une classe singleton.
Que vous appelez dans votre fonction comme suit :
La lecture de sa question. Il en fait la demande, "est-il un moyen d'accéder à une instance d'une classe à l'intérieur des fonctions en php"
Et comme je l'ai déjà dit dans la réponse, juste un petit lien, vous devez suivre et décider pour vous-même si le singleton est vraiment de la bonne façon: code.google.com/p/google-singleton-detector/wiki/...
C'est vrai, il doit en effet d'abord examiner toutes les options et de décider si oui ou non le singleton approche est le chemin à parcourir, mais que l'exercice est laissé à l'affiche de la question. Ce n'est pas quelque chose que je peux décider pour lui...
OriginalL'auteur wimvds
Utilisation mondial:
Fonctionne sur toutes les variables, et pas seulement les classes.
OriginalL'auteur Tatu Ulmanen
Le moyen le plus propre serait de passer à l'instance par référence à la classe donnée et accéder ensuite.
Un autre moyen serait d'utiliser un pattern singleton, bien que beaucoup diront que ce n'est pas vraiment mieux qu'un mondial.
OriginalL'auteur tDo
Comme déjà répondu, vous pouvez utiliser un variable globale pour stocker l'instance de classe, mais il me semble que vous devriez envisager d'utiliser quelque chose comme le Le pattern Singleton plutôt pour un nettoyeur de mise en œuvre.
Vous pouvez trouver un exemple simple d'une classe singleton ici.
OriginalL'auteur Veeti
Si vous souhaitez appliquer à l'aide d'une seule instance d'une classe tout au long de votre application, vous devez utiliser un singleton, et non mondiale. Vous pourriez faire quelque chose comme ceci:
OriginalL'auteur Justin Johnson