Comment appeler non méthode statique statique méthode de la même classe?
Je suis en train de travailler sur PHP code.
Voici un exemple de code pour expliquer mon problème :
class Foo {
public function fun1() {
echo 'non-static';
}
public static function fun2() {
echo "static" ;
//self::fun1();
//Foo::fun1();
}
}
Comment puis-je appeler non méthode statique de la méthode statique ?
Remarque :
Les deux fonctions sont utilisées sur l'ensemble du site, qui n'est pas connu. J'
ne peut pas faire des changements dans la statique/non-statique de la nature.
- Je pense que non statique méthodes peuvent être appelées par objet. parce que sa dépend de la classe et les méthodes statiques sont indépendants.
- Ouais, mais à l'intérieur de la classe, comment ? Dois-je créer un objet de la même catégorie dans la même classe de fonction ?
- vérifiez ceci : stackoverflow.com/a/2396427/2815635
- quel est le problème:-eval.dans/715502
- Non méthode statique getCommonData() ne devraient pas être appelée de façon statique. Ce message a été montrant de self:: et Foo::
- Peut-être un problème avec le cadre, je suis à l'aide de laravel et @Matei Mihai m'avait donné la solution qui fonctionne bien. Merci quand même.
Vous devez vous connecter pour publier un commentaire.
Vous devez créer un nouvel objet à l'intérieur de la méthode statique à accès non-méthodes statiques à l'intérieur de cette classe:
Le résultat serait
non-static
Éditer plus tard: Comme on le voit un intérêt à passer des variables pour le constructeur, je vais poster une version mise à jour de la classe:
Le résultat serait
foo - bar
La principale différence serait que vous pouvez appeler les méthodes statiques de classe sans avoir à instancier un objet de cette classe.
Donc, dans votre méthode statique essayer
Mais je ne vois pas comment cela aurait aucun sens dans un contexte.