__unset()魔术方法 删除类内私有属性
__unset()魔术方法 删除私有属性
unset()对共有属性进行删除 可通过__unset()魔术方法对私有属性进行操作
当在类外部执行unset()函数时,自动执行类内__unset()魔术方法
class hdw {
private $name;
private $age;
private $money; //员工工资
public $c;
function __construct($name, $age = '', $money) {
$this->name = $name;
$this->age = $age;
$this->money = $money;
}
function __isset($var) {
$array = array ("name", "age" );
if (in_array ( $var, $array )) {
echo $var . "属性存在,他的值是:" . $this->$var;
} elseif (in_array ( $var, array_keys ( get_object_vars ( $this ) ) )) {
echo "属性不允许外部检查";
return;
} else {
echo "属性不存在";
}
}
function __unset($c) {
if ($c == 'age') {
unset ( $this->$c );
echo "删除属性{$c}成功!";
} else {
echo "不允许删除属性{$c}";
}
}
function get_money() {
echo $this->money;
}
}
$lisi = new hdw ( "李四", 22, 5500 );
//isset ( $lisi->money2222 ) ;
//echo isset($_GET['page'])?$_GET['page']:1;
unset ( $lisi->name );
//echo $lisi->get_money();
__unset()魔术方法 删除类内私有属性的更多相关文章
- 访问类的私有属性(RTTI和模仿类2种方法)
如何访问类的私有属性? 下面以 TPathData 为例,它有一个私有属性 PathData,储存了每一个曲线点,但一般无法修改它,需要利用下面方法,才能访问修改(若有更好的方法,歡迎分享): 一.利 ...
- python 类的私有属性和方法 (转载)
转载:http://www.runoob.com/python/python-object.html 类属性与方法 类的私有属性 __private_attrs:两个下划线开头,声明该属性为私有,不能 ...
- __get().__set.__isset,__unset魔术方法
一般来说,总是把类的属性定义为 private .这更符合现实的逻辑. 但是对属性的读取和赋值操作非常频繁的,因此在PHP中,预定义了两魔术方法 "__get()"用来获取私有成员属性值的,只有一个参 ...
- Java使用PropertyDescriptor获取实体类中私有属性的值,并给私有属性赋值
大家都知道Java类中的私有的(private)属性是获取不到的(即使使用继承依然获取不到),那如果非要获取私有属性的值怎么办呢?一般的做法是将该java类封装称为一个JavaBean,即封装该私有属 ...
- Python类的私有属性
class Bar(object): __age = 18 sex = 'male' def __init__(self, ): pass def f(self): print(self.__age) ...
- python 基础 5.4 类的私有属性和私有方法
一. 类的私有变量和私有方法 1> 在python 中可以通过在属性变量名前,加上双下划线定义属性为私有属性 2>特殊变量命名 a. _xx 以单下划线开头的表示的是protect ...
- Python 类的私有属性与私有方法
1.隐藏的使用场景 在Python类中,有些属性和方法只希望在对象的内部被使用,而不希望在外部被访问到, 2.定义方式, 在属性名或方法名前增加两个下划线,定义的就是私有属性或方法 #其实这仅仅这是一 ...
- CSIC_716_20191127【组合,封装、类的私有属性方法、property装饰器】
组合 what? 组合是指一个对象中,包含另一个或多个对象. why? 减少代码的冗余. How? 在类中加入其他类的对象,实现跨类对象之间的联动. 耦合度 软件设计要 高内聚 ...
- Python_类的私有属性、私有方法
1.私有属性:只需要在初始化时,在属性名前加__ class Cup: #构造函数,初始化属性值 def __init__(self,capacity,color): #私有属性,只需要在属性名字前加 ...
随机推荐
- ASP.NET【2】
从上一节我们了解到ASP.NET是一种动态网页技术,在服务器端运行.Net代码,服务器端接收处理动态生成HTML代码,然后发送给浏览器,再由浏览器解析HTML代码将数据呈现给用户. 那么,下面我来介绍 ...
- php 写一个水仙花数的函数
判断一个数是不是水仙花数 <?php function is_shuixianhua($i) { $length=strlen($i); $i=(string)$i; $sum=0; for($ ...
- 制作一个html中闪动的title 来提示消息
var flashTitlePlayer = { start: function (msg) { this.title = document.title; if (!this.action) { tr ...
- 20169210《Linux内核原理与分析》第四周作业
网易云课堂学习: 在实验楼的学习中,这次的实验是利用mykernel实验模拟计算机硬件平台 首先进入linux-3.9.4, $cd LinuxKernel/linux-3.9.4 如下图所示 接下来 ...
- 使用GridView自带分页的代码
关于GridView分页页码的讨论 在GridView中实现分页的效果方法非常easy,仅仅须要在"GridView任务"对话框中进行设置就能够了.在"GridView任 ...
- WPF button 圆角制作
将以下节点复制到app.xaml的<Application.Resources>节点下 <Style TargetType="{x:Type Button}"&g ...
- OpenGL中的投影使用
OpenGL中的投影使用 在OpenGL中,投影矩阵指定了可视区域的大小和形状.对于正投影与透视投影这两种不同的投影类型,它们分别有各自的用途. 正投影 它适用于2D图形,如文本.建筑画图等.在它的应 ...
- 使用 JSSE 定制 SSL 连接的属性--转载
当数据在网络上传播的时候,通过使用 SSL 对其进行加密和保护,JSSE 为 Java 应用程序提供了安全的通信.在本篇有关该技术的高级研究中,Java 中间件开发人员 Ian Parkinson 深 ...
- CentOS6.5一键安装MySQL5.5.32(源码编译)
###################################################mysql_install.sh ...
- hdu2044java
一只小蜜蜂... Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submi ...