Cet article présente principalement les méthodes magiques orientées objet en PHP, qui ont 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
Méthodes magiques courantes
.
__set($property, $value) 给不可访问的属性赋值 __get($propertyName) 调用不可访问的属性 __isset($content) 对不可访问的属性使用empty()、isset()时触发 __unset($content) 对不可访问的属性使用unset()时触发
__call(string $function_name, array $arguments) 调用不可访问的普通方法 $function_name 被调用的方法名 $arguments 被调用方法的多个参数 __callStatic(string $function_name, array $arguments) 调用不可访问的静态方法
<?php class Example { // 可访问的属性 public $price = 111; //不可访问的属性 private $secret = '我是不可访问的属性'; private $age = 23; //不可访问的普通方法 private function donTell() { echo '不能说的秘密'; } //不可访问的静态方法 private static function super() { echo '我是不可访问的静态方法'; } //魔术方法 public function __set($property, $value) { echo '给不可访问的属性赋值,您要设置的属性是'.$property.',值是'.$value; $this -> $property = $value; } public function __get($propertyName) { echo '调用私有属性'.$propertyName.',它的属性值是'.$this -> $propertyName; } public function __isset($content) { echo '你在对不可访问的属性进行empty()、isset()操作'; isset($this->$content); } public function __unset($content) { echo '你在对不可访问的属性进行unset()操作'; isset($this->$content); } public function __call($function_name,$args) { echo '你在调用不可访问的普通方法'; echo '方法名是'.$function_name; var_dump($args); } public static function __callStatic($function_name,$args) { echo '调用不可访问的静态方法'; echo '方法名是'.$function_name; } } //实例化对象 $e1 = new Example(); /******* 触发各种魔术方法 ***********/ // 测试__set方法 $e1 -> secret = '我是秘密'; echo '<hr/>'; // 测试__get方法 $e1 -> age; echo '<hr/>'; // 测试__isset()方法 echo isset($e1 -> age); echo '<hr/>'; // 测试__unset方法 unset($e1 -> age); echo '<hr/>'; // 测试__call方法 $e1 -> donTell([1,2,3]); echo '<hr/>'; // 测试__callStatic方法 $e1 -> super(); ?>
Recommandations associées :
Méthodes, propriétés et constantes statiques orientées objet php
Constructeurs et destructeurs orientés 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!