Maison > Article > développement back-end > Comment définir des classes et leurs propriétés de membre en PHP
Le concept de classe : Une classe est une collection d'objets ayant les mêmes propriétés et opérations. Il fournit une description abstraite unifiée pour tous les objets appartenant à cette classe, qui comprend deux parties principales : les attributs et les opérations. Dans le langage de programmation orienté objet, une classe est une unité de programme indépendante. Elle doit avoir un nom de classe et comprendre deux parties principales : la description de l'attribut et la description de l'opération.
1. Définition de classe : i. La définition du mot-clé de classe utilise la classeDéfinir une classe videClass Person{};2. avec les attributs et les opérations des membres
Class Person{ 成员属性........ 操 作........ }3. Définissez une classe qui ne peut pas être héritée, utilisez le mot-clé final
Final class Person{ 成员属性........ 操 作........ }4. Remarque : le mot-clé final ne peut pas être utilisé pour modifier le membre. attributs, vous ne pouvez modifier que les classes et les méthodes (les méthodes finales seront introduites plus tard) 5 Voici une classe avec final Définir une classe finale FinalClass, comprenant une fonction publique
.
final class FinalClass { public function ffun() { echo “本类为final类”; } }Définissez une classe ChildFinalClass et héritez de la classe FinalClass
class ChildFinalClass extends FinalClass { public function fchildfun() { echo ‘本类继承final类FinalClass ’; } }De cette façon, lorsque la commande ci-dessus est exécutée, le système demandera
Fatal error: Class ChildFinalClass may not inherit from final class (FinalClass)Prouvé par le mot-clé final La classe définie ne peut pas être héritée par les sous-classes2 Définition des attributs membres dans la classei Les attributs membres sont des attributs variables définis pour la classe, qui sont considérés comme un. classe On dit que tout le monde a une paire d'yeux (normaux, sauf Erlangshen), une bouche, deux oreilles, etc. Certains noms propres fixes utilisés pour décrire ou exprimer certaines choses sont appelés attributs de membre ii. les mots-clés utilisés dans la déclaration des attributs membres d'une classe sont iii. Les déclarations d'attributs membres courants commencent par les mots-clés suivants : public, var, protected, private, puis suivis de composer of. variables. Il existe également certains attributs de membre, notamment un const statique et constant.Public : indique global et est accessible par les sous-classes à l'intérieur et à l'extérieur de la classe Var : cet attribut de membre sera pris en compte dans. Version PHP 5 Attributs de type public protected signifie protégé et n'est accessible que dans cette classe ou sous-classe ou classe parent private
signifie privé et ne peut être utilisé que dans cette classe
Statique : 1) Attributs statiques, 2) Les attributs membres modifiés avec static peuvent être partagés par tous les objets de la même classe 3) Données statiques Cela existe dans le segment de données en mémoire lorsque la classe est chargée pour la première fois (initialisation du segment statique) 4) Utiliser self:: nom de l'attribut membre dans la classe 5) Classe Externe nom de classe : nom de l'attribut membreConst : 1) Attributs constants dans la classe, vous devez utiliser const 2) Utiliser self:: nom de l'attribut membre dans. la classe3) Utilisation du nom de classe :: nom de l'attribut membre
Remarque : les variables de l'attribut peuvent être initialisées, mais l'initialisation doit être constante. La constante signifie ici qu'il s'agit d'un. constante, et non une constante calculée au moment de l'exécution après l'étape de compilation. Par exemple, il ne peut contenir aucun opérateur, ne peut être aucune variable, ne peut pas être une fonction, etc.
iv. Comment appeler les propriétés des membres :
Dans la
méthode membrede la classe, vous pouvez utiliser $this->property (la propriété est le nom de la propriété) . Pour accéder aux propriétés et aux méthodes d'une classe, mais il ne peut pas être utilisé pour accéder aux propriétés statiques d'une classe ou dans une méthode statique, utilisez plutôt self::$property. La pseudo variable $this peut être utilisée dans les méthodes non statiques d'une classe. Cette pseudo variable est une référence à l'objet instancié qui appelle la méthode. Ensuite, utilisez le code pour expliquer le contenu ci-dessus :
3 Définition des opérations dans une classeclass FinalClass { //static $a = strTolower(); //这种写法错误 //const A = 1+2; //这种写法错误 //public $name = 123+456; //这种写法错误 static $a = '$a'; const A = 'A'; public $name = '凤姐'; protected $sex = '男+女'; private $age = 23; } class ChildFinalClass extends FinalClass{ public function fchildfun(){ echo 'ChildFinalClass类中ChildFinalClass::$a->'.ChildFinalClass::$a."<hr>"; Echo 'ChildFinalClass类中ChildFinalClass::A->'.ChildFinalClass::A."<hr>"; echo '大家好,我叫'.$this->name."<hr>"; echo '我是:'.$this->sex.'生<hr>'; echo '我今年:'.$this->age.'<hr>'; //由于age是私有的成员属性,所以在这里将不会被调用,将提示没有定义此属性在ChildFinalClass类中。 } } $obj = new ChildFinalClass(); $obj->fchildfun();
J'aime généralement appeler les opérations en tant que membres Méthodes. , ci-dessous, j'appellerai les opérations comme des méthodes, mais elles sont toutes identiques
ii Définition des méthodes membres : les méthodes membres sont des méthodes de fonction définies pour la classe. Par exemple, prenez cette classe comme exemple, les gens. peut manger, peut exécuter, peut taper du code, ce sont des méthodes membres. C'est-à-dire que vous pouvez effectuer certaines actions exécutables, que nous comprenons comme méthodes membres
iii. Pour accéder aux méthodes membres et aux attributs des membres, vous pouvez vous référer à l'introduction à l'accès aux attributs des membres ci-dessus.
iv. Les méthodes membres et les attributs de membre incluent également public, protected, private, static, final et la portée est la même. Voici quelques exemples pour votre référence et votre compréhension.
v. Les méthodes membres statiques ne peuvent accéder qu'aux propriétés et méthodes membres statiques, et vous pouvez utiliser self::static method() pour accéder aux méthodes statiques à l'intérieur de la classe et utiliser class name::static method(). pour accéder à la classe externe. )
1. Méthodes personnalisées :
2. Les méthodes magiquesclass FinalClass { static $a = '$a'; const A = 'A'; public $name = '凤姐'; protected $sex = '男+女'; private $age = 23; //定义一个公共方法 public function publickfun(){ echo 'FinalClass类中self::$a->'.self::$a."<hr>"; echo "FinalClass类中self::A->".self::A."<hr>"; echo '大家好,我叫:'.$this->name."<hr>"; echo '我是:'.$this->sex.'生<hr>'; echo '我今年:'.$this->age.'<hr>'; } //定义一个受保护的方法 protected function protectedfun(){ echo 'FinalClass类中self::$a->'.self::$a."<hr>"; echo "FinalClass类中self::A->".self::A."<hr>"; echo '大家好,我叫:'.$this->name."<hr>"; echo '我是:'.$this->sex.'生<hr>'; echo '我今年:'.$this->age.'<hr>'; } //定义一个私用方法 private function privatefun(){ echo 'FinalClass类中self::$a->'.self::$a."<hr>"; echo "FinalClass类中self::A->".self::A."<hr>"; echo '大家好,我叫:'.$this->name."<hr>"; echo '我是:'.$this->sex.'生<hr>'; echo '我今年:'.$this->age.'<hr>'; } } class ChildFinalClass extends FinalClass{ public function fchildfun(){ echo 'ChildFinalClass类中ChildFinalClass::$a->'.ChildFinalClass::$a."<hr>"; Echo 'ChildFinalClass类中ChildFinalClass::A->'.ChildFinalClass::A."<hr>"; echo '我是:'.$this->sex.'生<hr>'; echo '我今年:'.$this->age.'<hr>'; //由于age是私有的成员属性,可以理解为我不想让别人知道我的年龄,所以在这里将不会被调用,将提示没有定义此属性在ChildFinalClass类中。 $this->publickfun(); $this->protectedfun(); $this->privatefun(); //由于privatefun是私有的成员方法,所以在这里将不会被调用。 } } $obj = new ChildFinalClass(); $obj->fchildfun();
i. les méthodes magiques doivent l'être
ii. À partir de PHP 5 et versions ultérieures, les classes en PHP peuvent utiliser des méthodes magiques. Il stipule que les méthodes commençant par deux traits de soulignement () sont réservées comme méthodes magiques, il est donc recommandé que les noms de fonctions de chacun ne commencent pas par eux, à moins que ce ne soit pour surcharger les méthodes magiques existantes. Ensuite, certaines méthodes magiques sont répertoriées si vous le souhaitez. élaborer Pour comprendre, vous pouvez interroger et comprendre un certain élément, je ne le présenterai donc pas en détail ici.
1. construct() Méthode de construction
destruct()
2 , clone()
Si vous souhaitez copier un objet, vous devez utiliser la méthode clone
3. La méthode toString()
est automatiquement appelée lors de la conversion d'un objet. dans une chaîne. Par exemple, lorsque vous utilisez echo pour imprimer des objets,
4. sleep(), lors de la sérialisation, utilisez
wakeup, lors de la désérialisation, appelez
5. set_state()
Lorsque var_export() est appelé, cette méthode statique sera appelée (valable depuis PHP 5.1.0)
invoquer (valable en PHP 5.3.0 ou supérieur)
6. 🎜>
Lorsque vous essayez d'invoquer un objet en tant que fonction, la méthode d'invocation est automatiquement appelée. 7. callStatic (valable pour PHP 5.3.0 et supérieur) consiste à gérer les appels de méthode statiques 8. get() Cette méthode sera déclenchée lorsqu'une propriété non définie est appelée. transmis est le nom de la propriété à laquelle vous accédez. set() Lors de l'attribution d'une valeur à une propriété non définie, cette méthode sera déclenchée. Les paramètres passés sont le nom de la propriété et la valeur à définir. La non-déclaration inclut ici les attributs dont le contrôle d'accès est protégé et privé (c'est-à-dire les attributs qui n'ont pas l'autorisation d'accéder) lorsqu'ils sont appelés à l'aide d'un objet. 9. isset() Cette méthode est appelée lorsque la fonction isset() est appelée sur un attribut non défini. unset() Lorsque la fonction unset() est appelée sur un attribut non défini. Cette méthode est appelé quand10. call($method, $arg_array)Lorsqu'une méthode non définie est appelée, cette méthode est appeléeLes méthodes non définies incluent ici Une méthode sans autorisation d'accès ; si la méthode n'existe pas, accédez à la classe parent pour rechercher la méthode. Si elle n'existe pas dans la classe parent, appelez la méthode call() de cette classe. dans cette classe, recherchez-la. La méthode call() dans la classe parent.11. autoload() Chargement automatique
Méthode magiqueCe 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!