Maison >développement back-end >tutoriel php >Surcharge orientée objet PHP
Cet article présente principalement la surcharge orientée objet en PHP, qui a une certaine valeur de référence. Maintenant, je le partage avec tout le monde. Les amis dans le besoin peuvent s'y référer
1 ) "crée" dynamiquement les propriétés et les méthodes d'une classe.
2) Réalisé grâce à la méthode magique.
3) Lors de l'appel d'attributs ou de méthodes d'une classe qui sont indéfinis ou invisibles dans l'environnement actuel, la méthode surchargée sera appelée.
__set 赋值 __get 读取 __isset 判断是否存在 __unset 销毁
// 属性的重载 class Person { public $name = '小芳'; protected $age = 18; public function __get($n) { //echo '试图读取不可访问的属性'.$n; if( $n == 'age'){ return $this -> age; }else{ return '你要查户口吗?'; } } public function __set($n,$v) { //echo '试图设置不可访问的属性','<br/>'; $this -> $n = $v; } public function __isset($n) { echo '判断不可访问的属性'.$n.'是否存在','<br/>'; } public function __unset($n) { echo '销毁不可访问的属性'.$n,'<br/>'; } } $p1 = new Person(); // 读取 //echo $p1 -> age,'<br/>'; //echo $p1 -> xxx,'<br/>'; // 设置 //$p1 -> age = 30; //echo $p1 -> age,'<br/>'; // 判断存在与否 isset($p1 -> age); // 销毁 unset($p1 -> age);
__call 调用不可访问的普通方法 __callStatic 调用不可访问的静态方法
Notez particulièrement que lors de la définition de __callStatic, il doit être défini comme méthode statique.
<?php class MyClass { protected function func($n) { echo '这是一个不可访问的方法'; echo '参数有'.$n; } protected static function fun2() { echo '受保护的静态方法'; } public function __call($function_name,$args) { echo '触发了不可访问的方法'; var_dump($function_name); var_dump($args); } public static function __callStatic($function_name,$args) { echo '触发了不可访问jing tai方法,静态!!!!'; var_dump($function_name); var_dump($args); } } // 实例化 $c1 = new MyClass(); $c1 -> func([1,2,3]); $c1 -> func2([1,2,3]);
Recommandations associées :
Encapsulation orientée objet php
Méthodes magiques orientées objet php
Méthodes statiques, propriétés et constantes orientées objet 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!