L'appel d'un Objet à l'intérieur d'une fonction
Donc je ne suis pas à la POO en PHP.
Voici mon problème j'ai un objet que je peux appeler une fonction à partir et il offre une arrary. Voici donc le code.
$obj = new OBJ();
function go($url){
$array = $obj->grabArray($url);
echo $array['hits'];
}
go('http://www.mysite.com/hello');
Cela me donne l'erreur
Erreur fatale: Appel d'une fonction membre grabArray() sur un non-objet
Vous devez vous connecter pour publier un commentaire.
Ce n'est pas une question de la programmation orientée objet, c'est un problème de portée. $obj n'est pas visible à l'intérieur de la fonction go(). Vous devez soit passer comme paramètre, ou de les amener dans la fonction de l'étendue d'avec le mot clé global (non recommandé)
Recommandé
Pas Recommandé
Il y a une autre solution qui est similaire à la programmation orientée objet concept de composition - vous en faire l'aller() la fonction de responsable de la création d'une instance de l'OBJ.
Ce n'est probablement pas idéal, cependant, puisque vous devez créer une nouvelle marque OBJ exemple à chaque fois que vous avez exécuté go(). Vous pouvez résoudre ce problème par la "mise en cache" l'instance de l'OBJ à l'intérieur de go() avec une variable statique
Mais cette composition approche est vraiment utile uniquement si vous n'utilisez pas votre instance de l'OBJ partout ailleurs d'ailleurs à l'intérieur de l'aller() fonction - si vous ne l'utilisez ailleurs, alors le paramètre approche est le meilleur choix.
Il est tout au sujet de la cueillette de la bonne solution pour la tâche à portée de main!