PHP中外部调用类私有属性的方法

  介绍

小编给大家分享一下PHP中外部调用类私有属性的方法,希望大家阅读完这篇文章后大所收获、下面让我们一起去探讨吧!

先来了解一下PHP类中的<代码> __get 和<代码> __set 函数
当试图获取一个不可达属性时,类会自动调用<代码> __get 函数。
当试图设置一个不可达属性时,类会自动调用<代码> __set 函数。

首先,来看一下<代码> __get 函数,先来获取一个可达属性试试:

& lt; PHP ?   A类{   公共美元=1;   私人$ b=2;   函数__get(美元的名字){   回声& # 39;你可以得到& # 39;美元的名字;   }   }   dy美元=new ();   回声dy→美元;   ?在

看一下它的返回:

 

没有问题,没有调用<代码> __get 函数,现在我来访问一个私有的不可达属性:

& lt; ? php   A类{   公共美元=1;   私人$ b=2;   函数__get(美元的名字){   回声& # 39;你可以得到& # 39;美元的名字;   }   }   dy美元=new ();   echo $ dy→b;   ?在

会发现:

你可以得到b 

说明这里调用了<代码> __get 函数,我再来看一下<代码> __set 函数,同样也是先使用可达的公众<代码> 属性:

& lt; ? php   A类{   公共美元;   私人$ b;   函数__set(名字,val美元){   回声& # 39;你可以得到& # 39;名字。瓦尔美元;   }   }   dy美元=new ();   dy→美元=1;   回声dy→美元;   ?在

看一下输出:

 

使用成功,没有问题,接着我们来使用私有属性:

& lt; ? php   A类{   公共美元;   私人$ b;   函数__set(名字,val美元){   回声& # 39;你可以得到& # 39;名字。瓦尔美元;   }   }   dy美元=new ();   美元dy→b=1;   echo $ dy→b;   ?在

这时看到:

你可以得到b1
  
  PHP致命错误:不能访问私有财产::$ b/usercode/file.php> & lt; PHP ?
  A类{
  公共美元;
  私人$ b;
  函数__set(名字,val美元){
  这→美元=$ val名称;
  }
  函数B () {
  echo $ this→b;
  }
  }
  dy美元=new ();
  美元dy→b=1;
  美元dy→B ();
  ?在

看一下输出:

 

说明使用成功。

看完了这篇文章,相信你对PHP中外部调用类私有属性的方法有了一定的了解,想了解更多相关知识,欢迎关注行业资讯频道,感谢各位的阅读!

PHP中外部调用类私有属性的方法