介绍
小编给大家分享一下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中外部调用类私有属性的方法有了一定的了解,想了解更多相关知识,欢迎关注行业资讯频道,感谢各位的阅读!