PHP est un langage de programmation largement utilisé, caractérisé par sa syntaxe concise et facile à utiliser, sa vitesse de développement rapide et la prise en charge de plusieurs bases de données. Cependant, certains développeurs PHP peuvent rencontrer un problème : les classes et méthodes ne peuvent pas être appelées de manière statique en externe. Cet article explorera ce problème et fournira une solution.
Qu'est-ce qu'un appel statique ?
Dans le développement PHP, l'appel statique est un moyen d'appeler directement une classe ou une méthode sans instancier l'objet. L'exemple de code est le suivant :
class Car{ public static function run(){ echo "the car is running"; } } // 静态调用 Car::run();
Comme mentionné ci-dessus, l'appel statique est un moyen d'accéder à un membre de classe (méthode ou propriété) en utilisant le nom de la classe et l'opérateur double deux-points.
Pourquoi ne peut-on pas l'appeler statiquement en externe ?
En PHP, la principale raison pour laquelle il ne peut pas être appelé statiquement en externe est la restriction des modificateurs d'accès. Si une classe ou une méthode est définie à l'aide du modificateur private
ou protected
, ses membres ne sont accessibles qu'au sein de la classe. Par conséquent, lorsqu'il est appelé en externe, l'interpréteur PHP refusera la demande d'accès correspondante. private
或protected
修饰符进行定义,则只有在类内部才能够访问其中的成员。因此,在外部调用时,PHP解释器将拒绝相应的访问请求。
解决方案:
如果想要在外部静态地调用类或方法,需要将它们定义为公共的(使用public
public
). Par exemple, disons que nous avons une classe appelée MyClass qui a une méthode statique publique myMethod qui peut être définie comme suit :
class MyClass{ public static function myMethod(){ echo "Hello World!"; } }
MyClass::myMethod();
class Example{ public function run(){ echo "example code"; } } // 使用反射API静态地调用run()函数 $class = new ReflectionClass('Example'); $method = $class->getMethod('run'); $method->invoke(null);
Conclusion
🎜🎜Dans le développement PHP, les appels statiques externes à des classes ou des méthodes peuvent être restreints par des modificateurs d'accès. Pour résoudre ce problème, vous devez définir la classe ou la méthode comme publique et utiliser le nom de la classe et l'opérateur double deux-points pour accéder aux membres de la classe. De plus, l'API de réflexion peut également être utilisée pour un accès statique. Connaître ces informations peut aider les développeurs à mieux utiliser la puissance de PHP. 🎜Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!