Maison >développement back-end >Problème PHP >Le rôle de la méthode constructeur php

Le rôle de la méthode constructeur php

藏色散人
藏色散人original
2019-08-24 14:04:303908parcourir

Le rôle de la méthode constructeur php

Le rôle de la méthode constructeur php

Le rôle de la méthode constructeur php est d'initialiser l'objet lorsque le créer, c'est-à-dire attribuer des valeurs initiales aux variables membres de l'objet, qui sont toujours utilisées avec l'opérateur new dans les instructions qui créent des objets. Une classe spéciale peut avoir plusieurs constructeurs, qui peuvent être distingués en fonction du nombre de paramètres ou des types de paramètres, c'est-à-dire de la surcharge des constructeurs.

Recommandations associées : [Tutoriel PHP]

Constructeur

__construct ([ mixed $args [, $... ]] ) : void

PHP 5 permet aux développeurs de travailler dans une classe Définir un méthode en tant que constructeur. Les classes avec un constructeur appelleront cette méthode à chaque fois qu'un nouvel objet est créé, elle est donc très appropriée pour effectuer un travail d'initialisation avant d'utiliser l'objet.

Remarque :

Si un constructeur est défini dans une sous-classe, le constructeur de sa classe parent ne sera pas implicitement appelé. Pour exécuter le constructeur de la classe parent, vous devez appeler parent::__construct() dans le constructeur de la classe enfant. Si la sous-classe ne définit pas de constructeur, celle-ci sera héritée de la classe parent comme une méthode de classe ordinaire (si elle n'est pas définie comme privée).

Exemple 1 Utilisation du nouveau constructeur standard

<?php
class BaseClass {
   function __construct() {
       print "In BaseClass constructor\n";
   }
}
class SubClass extends BaseClass {
   function __construct() {
       parent::__construct();
       print "In SubClass constructor\n";
   }
}
class OtherSubClass extends BaseClass {
    // inherits BaseClass&#39;s constructor
}
// In BaseClass constructor
$obj = new BaseClass();
// In BaseClass constructor
// In SubClass constructor
$obj = new SubClass();
// In BaseClass constructor
$obj = new OtherSubClass();
?>

Pour une compatibilité ascendante, si PHP 5 ne trouve pas la fonction __construct() dans la classe et aussi Si elle n'hérite pas un de la classe parent, il essaiera de trouver un constructeur à l'ancienne, qui est une fonction portant le même nom que la classe. Ainsi, la seule fois où un problème de compatibilité survient, c’est lorsqu’une classe possède déjà une méthode nommée __construct() mais qu’elle est utilisée à d’autres fins.

Contrairement à d'autres méthodes, PHP ne générera pas de message d'erreur E_STRICT lorsque __construct() est remplacé par une méthode avec des paramètres différents de ceux de la classe parent __construct().

Depuis PHP 5.3.3, dans l'espace de noms, les méthodes portant le même nom que le nom de la classe ne sont plus utilisées comme constructeurs. Cette modification n'affecte pas les classes qui ne se trouvent pas dans l'espace de noms.

Exemple 2

<?php
namespace Foo;
class Bar {
    public function Bar() {
        // treated as constructor in PHP 5.3.0-5.3.2
        // treated as regular method as of PHP 5.3.3
    }
}
?>

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Article précédent:Le rôle du destructeur phpArticle suivant:Le rôle du destructeur php