PHP面向对象改进后的一点说明
作者 佚名技术
来源 NET编程
浏览
发布时间 2012-05-26
象里面加上 “__unset()”这个方法,就可以在对象的外部去删除对象的私有成员属性了。在对象里面加上了“__unset()”这个方法之后,在对象外部使用 “unset()”函数删除对象内部的私有成员属性时,自动调用“__unset()”函数来帮 我们删除对象内部的私有成员属性,这个方法也可以在类的内部定义成私有的。在对象里面加上下面的代码就可以了: private function__unset($nm) { echo"当在类外部使用unset()函数来删除私有成员时自动调用的<br>"; unset($this->$nm); } 我们来看一个完整的实例: <?php classPerson { //下面是人的成员属性 private $name; //人的名子 private $sex; //人的性别 private $age; //人的年龄 //__get()方法用来获取私有属性 private function__get($property_name) { if(isset($this->$property_name)) { return($this->$property_name); }else{ return(NULL); } } //__set()方法用来设置私有属性 private function__set($property_name,$value) { $this->$property_name=$value; } //__isset()方法 private function__isset($nm) { echo"isset()函数测定私有成员时,自动调用<br>"; return isset($this->$nm); } //__unset()方法 private function__unset($nm) { echo"当在类外部使用unset()函数来删除私有成员时自动调用的<br>"; unset($this->$nm); } } $p1=newPerson(); $p1->name="this is a person name"; //在使用isset()函数测定私有成员时,自动调用__isset()方法帮我们完成,返回结果为true echovar_dump(isset($p1->name))."<br>"; echo $p1->name."<br>"; //在使用unset()函数删除私有成员时,自动调用__unset()方法帮我们完成,删除name私有属性 unset($p1->name); //已经被删除了, 所这行不会有输出 echo $p1->name; ?> 输出结果为: isset()函数测定私有成员时,自动调用 bool(true) this is a person name 当在类外部使用unset()函数来删除私有成员时自动调用的 __set()、__get()、__isset()、__unset()这四个方法都是我们添加到对象里面的,在需要时自动调用的,来完成在对象外部对对象内部私有属性的操作。 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
上一篇: PHP中函数内引用全局变量的方法下一篇: PHP CURL函数库
关于PHP面向对象改进后的一点说明的所有评论