gpt4 book ai didi

详解php的魔术方法__get()和__set()使用介绍

转载 作者:qq735679552 更新时间:2022-09-29 22:32:09 26 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章详解php的魔术方法__get()和__set()使用介绍由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

先看看php官方文档的解释:  __set() is run when writing data to inaccessible properties.  __get() is utilized for reading data from inaccessible properties.  究竟用中文怎么翻译呢?  inaccessible :n. 难达到;难接近;无法理解。  有代码有真相:  。

复制代码代码如下

<?php  error_reporting(E_ALL);  class stu{  private $a;  private $b = 0;  public $c;  public $d = 0;  //这里的 private 可以用 protected public 替代  private function __get($name) {  return 123;  }  //这里的 private 也可以用 protected public 替代  private function __set($name, $value) {  echo "This is set function";  }  }  $s = new stu();  var_dump($s->a); //output: 123  var_dump($s->b); //output: 123  var_dump($s->c); //output: null  var_dump($s->d); //output: 0  var_dump($s->e); //output: 123  $s->a = 3; //output: This is set function  $s->c = 3; //no output  $s->f = 3; //output: This is set function  ?>  。

结果分析:  如果没有__get方法,执行 var_dump($s->a) var_dump($s->b) 会有致命的错误  如果没有__get方法,执行 var_dump($s->e) 会有一个notice,提示没有定义属性 $e  总结:  1. 从一个难以访问的属性读取数据的时候 __get() 方法被调用  2. 向一个难以访问的属性赋值的时候 __set() 方法被调用  3. 难以访问包括:(1)私有属性,(2)没有初始化的属性  4. __isset() __unset() 也类似 。

最后此篇关于详解php的魔术方法__get()和__set()使用介绍的文章就讲到这里了,如果你想了解更多关于详解php的魔术方法__get()和__set()使用介绍的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com