Maison  >  Article  >  développement back-end  >  Méthodes magiques : comprendre __construct, __destruct et d'autres méthodes de base en PHP

Méthodes magiques : comprendre __construct, __destruct et d'autres méthodes de base en PHP

PHPz
PHPzoriginal
2023-06-19 23:22:351125parcourir

Méthodes magiques : comprenez les méthodes de base telles que __construct et __destruct en PHP

Dans le langage PHP, il existe des méthodes spéciales appelées « méthodes magiques », notamment __construct, __destruct, etc. Ces méthodes jouent un rôle important dans la programmation orientée objet en PHP. Cet article expliquera le rôle et l'application pratique de ces méthodes.

__méthode construct

__la méthode construct est une méthode très importante c'est une méthode qui est automatiquement appelée lorsque PHP crée un nouvel objet. Dans cette méthode, nous pouvons effectuer certains travaux d'initialisation, tels que définir des valeurs par défaut pour les propriétés de l'objet, se connecter à la base de données, etc. De plus, si on ne définit pas cette méthode, une erreur se produira lors de l’instanciation de la classe.

Ce qui suit est un exemple de code :

class Person{
  public $name;
  public $age;
  
  function __construct($name, $age){
    $this->name = $name;
    $this->age = $age;
  }
  
  function showInfo(){
    echo "姓名:" . $this->name . " 年龄:" . $this->age;
  }
}

$person = new Person("张三", 20);
$person->showInfo();

Dans le code ci-dessus, nous définissons une classe nommée Person et définissons une méthode __construct dans la classe pour initialiser les attributs name et age. Lors de l'instanciation de la classe Person, nous transmettons "Zhang San" et 20 comme paramètres, afin que les informations personnelles puissent être sorties via la méthode $person->showInfo().

__méthode destruct

__La méthode destruct est une méthode qui est automatiquement appelée lorsque l'objet est détruit. Dans cette méthode, nous pouvons effectuer un travail de nettoyage, comme libérer certaines ressources occupées, etc. De même, si l’on ne définit pas cette méthode, une erreur se produira lors de la destruction de l’objet.

Ce qui suit est un exemple de code :

class Car{
  public $brand;
  
  function __construct($brand){
    $this->brand = $brand;
  }
  
  function run(){
    echo "我开着" . $this->brand . "在马路上飞奔!";
  }
  
  function __destruct(){
    echo $this->brand . "被销毁了!";
  }
}

$car = new Car("宝马");
$car->run();

Dans le code ci-dessus, nous définissons une classe nommée Car et définissons une méthode __destruct dans la classe pour générer des informations lorsqu'un véhicule est détruit. Après avoir instancié la classe Car, nous appelons la méthode $car->run() pour afficher les informations sur le véhicule et afficher les informations de destruction à la fin.

__méthode d'appel

__La méthode d'appel est une méthode qui est automatiquement appelée lorsqu'une méthode qui n'existe pas dans la classe est appelée. Dans cette méthode, nous pouvons appeler dynamiquement une méthode et transmettre des paramètres. Cette méthode est très adaptée pour faire face à certaines situations incertaines lors du développement, telles que l'appel dynamique de méthodes d'exploitation de base de données.

Ce qui suit est un exemple de code :

class Database{
  private $db;
  
  function __construct($host, $user, $password, $dbName){
    $this->db = new mysqli($host, $user, $password, $dbName);
  }
  
  function __call($method, $args){
    if(method_exists($this->db, $method)){
      return call_user_func_array([$this->db, $method], $args);
    }else{
      die("没有找到" . $method . "方法!");
    }
  }
}

$database = new Database("localhost", "root", "password", "test");
$res = $database->query("SELECT * FROM users");

while($row = $res->fetch_assoc()){
  echo $row['name'];
}

Dans le code ci-dessus, nous définissons une classe nommée Database et définissons une méthode __call dans la classe pour appeler dynamiquement la méthode de la classe mysqli. Lorsque nous instancions la classe Database et appelons la méthode query, la méthode query() de la classe mysqli est en fait appelée dynamiquement.

Conclusion

Dans le langage PHP, les méthodes magiques nous fournissent de nombreux outils utiles, tels que la méthode __construct pour initialiser des objets, la méthode __destruct pour le nettoyage, et la méthode __call pour appeler dynamiquement des méthodes, etc. La maîtrise de ces méthodes est très importante pour la programmation orientée objet en 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!

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