php面向对象之__isset和__unset

一、简介

__isset和__unset都是对不可访问属性的操作,前者是检验的时候自动调用,后者是销毁的时候自动调用。

比如说在类外访问private的时候就会出现不可访问属性。

二、代码

 <?php
/*
* __isset:当外部调用isset()函数检测不可访问的属性或者不存在的属性时自动调用
__unset:当在类外部调用unset销毁不可访问属性时自动调用
* */
class Person{
private $userName;
private $age;
public $abc;
public function __construct($userName,$age){
$this->userName = $userName;
$this->age = $age;
}
public function __isset($name){
echo '当外部调用isset()函数检测不可访问的属性或者不存在的属性时自动调用';
return isset($name);
}
public function __unset($name){
echo '当在类外部调用unset销毁不可访问属性时自动调用';
unset($name);
}
}
$p = new Person('Clive',15);
var_dump(isset($p->abc));
echo '<hr/>';
unset($p->abc);

调用public属性,也就是可访问属性的时候,__isset和__unset都不会被访问到。

最新文章

  1. SQLServer 游标 (A)
  2. HDU1325
  3. Kinect For Windows V2开发日志九:侦测并绘制人体骨架
  4. Linux makefile 教程 非常详细,且易懂(转)
  5. 关于STM32在程序中间修改PWM值的总结(原创)
  6. python 导入informixdb模块
  7. PHP通过phpmailer批量发送邮件功能
  8. jsp窗口关闭的触发函数
  9. H5页面解决IOS进入不自动播放问题(微信内)
  10. 笔记:创建Jersey REST 服务,基于Maven
  11. MYSQL OR与AND同时出现的用法
  12. mysql知识点汇总
  13. haproxy 配置文件分析
  14. redis初始化服务器
  15. maven 如何依赖工程项目里面的 jar 包
  16. 【转载】【收藏】Github上免费的编程教程【作者Victor Felder】
  17. C# Split() 去除 \r\n 分组
  18. Java时间操作常用api
  19. 2007 Audi A4 INSTRUMENT CLUSTER WIRING DIAGRAM
  20. [BZOJ2961]共点圆-[凸包+cdq分治]

热门文章

  1. H3BPM子表的复制
  2. Arduino-1602-LiquidCrystal库
  3. BZOJ 2288 贪心 +链表
  4. QlikSense系列(4)——QlikSense管理
  5. 利用JavaScript的%读分秒
  6. hdu2282 Chocolate 完美匹配 + 拆点
  7. go结构,结构嵌套,接口,指针的测试和结论
  8. 3 Python+Selenium的元素定位方法(id、class name、name、tag name)
  9. Django使用中常见的错误
  10. day06-08面向对象的三大特性