이 글은 주로 PHP의 객체지향 매직 메소드를 소개하는데, 이는 특정 참조 가치가 있습니다. 이제는 모든 사람과 공유합니다. 도움이 필요한 친구들은 이를 참조할 수 있습니다.
일반적인 매직 메소드
__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(); ?>
관련 권장 사항:
위 내용은 PHP 객체지향 매직 메소드의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!