Concept de classe : Une classe est une collection d'objets ayant les mêmes attributs 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 classe Définir une classe vide Personne de classe{} ;2. Définir une classe avec des attributs de membre et des opérations
Class Person{
Attributs de membre.....
Opérations ........
}
3. Définissez une classe qui ne peut pas être héritée, utilisez le mot-clé final
Classe finale Personne{
Attributs des membres...
Opération...
}
4. Remarque : le mot-clé final ne peut pas être utilisé. La modification des attributs des membres ne peut 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, incluant une fonction publique
Définir une classe ChildFinalClass et hériter de la classe FinalClassfinal class FinalClass { public function ffun() { echo “本类为final类”; } }
class ChildFinalClass extends FinalClass { public function fchildfun() { echo ‘本类继承final类FinalClass ’; } }
Erreur fatale : la classe ChildFinalClass ne peut pas hériter de la classe finale (FinalClass)
Prouve que la classe défini par le mot-clé final ne peut pas être hérité par les sous-classes
2 Définition des attributs membres dans la classe
i. En tant que classe, les gens ont une paire d'yeux (normaux, sauf Erlangshen), une bouche, deux oreilles, etc. Les noms propres utilisés pour décrire ou exprimer quelque chose sont appelés attributs de membre
ii. Les attributs membres d'une classe utilisent le mot-clé
iii. Les déclarations d'attributs membres communs sont effectuées par Les mots-clés suivants commencent par
public, var, protected, private et sont suivis d'une variable. 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 le Version PHP 5 Attributs de type public
protected signifie protégé et n'est accessible que par 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) Statique les données existent 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) À l'extérieur la classe Nom de la classe :: nom de l'attribut membre
Const : 1) Attribut constant dans la classe, vous devez utiliser const
pour déclarer une constante dans la classe 2) Utiliser self :: attribut membre dans la classe Nom
3) Utilisation en dehors de la classe Nom de la classe ::Nom de l'attribut membre
Remarque : Les variables de l'attribut peuvent être initialisées, mais la valeur initialisée doit être une constante. constante fait ici référence au script PHP dans C'est une constante pendant la phase de compilation, plutôt qu'une constante calculée pendant la phase d'exécution après la phase 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 :
class 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. toutes les autres méthodes magiques ça doit être comme ça
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 un objet,
4. Lors de la sérialisation, utilisez
wakeup. . set_state()
Lorsque var_export() est appelé, cette méthode statique sera appelée (valable depuis PHP 5.1.0)
6.
Lorsque vous essayez de Lorsque vous appelez un objet en appelant une fonction, la méthode d'invocation est automatiquement appelée.
7. callStatic (valable pour PHP 5.3.0 ou supérieur) permet de 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() Cette méthode sera déclenchée lors de l'attribution d'une valeur à un attribut non défini. Les paramètres passés sont le nom de l'attribut 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é lorsque
10. call( $method, $arg_array )
Lorsqu'une méthode non définie est appelée, cette méthode est appelée
La méthode non définie ici n'inclut aucune autorisation d'accès à la méthode ; 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. accédez à la méthode call() de la classe parent.
11. autoload()
Chargement automatiqueCe 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!