Pouvez-vous inclure du code dans une classe PHP ?
Les définitions de classe PHP nécessitent une syntaxe spécifique, et inclure du code directement dans le corps de la classe n'est pas permis. L'inclusion de fichiers dans une définition de classe est autorisée, mais uniquement en dehors du corps de classe ou à l'intérieur des corps de méthode.
Séparation du comportement de classe
Pour séparer la définition de classe de son comportement, vous pouvez utiliser une approche non conventionnelle :
class MyClass { // Class definition public function __construct() { // Include methods from external file include('Myclass_methods.php'); } }
Notez que cette approche inclut des méthodes dans la portée d'une méthode, et non dans la portée de la classe. lui-même.
Limitations de l'inclusion de fichiers
L'inclusion directe de méthodes dans le corps de la classe est interdite. Patcher dynamiquement la classe pour modifier son comportement à l'aide d'includes n'est pas non plus une pratique recommandée.
Modèle d'interface et de stratégie
Une meilleure solution pour modifier dynamiquement le comportement de la classe consiste à utiliser une interface et implémenter le modèle de stratégie. Définissez une interface pour un comportement commun, mettez en œuvre différentes stratégies de miaou, puis permettez à votre classe de basculer entre ces stratégies :
interface Meowing { public function meow(); } class RegularMeow implements Meowing { public function meow() { return 'meow'; } } class LolkatMeow implements Meowing { public function meow() { return 'lolz xD'; } } class Cat { private Meowing $meowing; public function setMeowing(Meowing $meowing) { $this->meowing = $meowing; } public function meow() { return $this->meowing->meow(); } }
Cette approche vous permet de modifier dynamiquement le comportement de votre classe en changeant la stratégie de miaou mise en œuvre. .
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!