__set(),__get() 魔术方法示例
2016-04-27 21:01
330 查看
<?php
class Ren
{
private $name;
private $age;
private $sex;
function __set($name,$value)
{
if($name == "age")
{
if($value < 50 && $value > 10)
{
$this->$name = $value;
}
}
else
{
$this->$name = $value;
}
}
function __get($name)
{
return $this->$name;
}
function __destruct()
{
echo "结束啦。对象销毁";
}
}
$r = new Ren();
$r->name = "张三";
$r->age = 30;
$r->sex="女";
var_dump($r);
echo $r->age;
//面向对象的三大特性
//1.封装
//1)目的:让类更加安全,不让外界直接访问类里面的成员变量
//2)做一个方法来实现变量取值或赋值,在方法里加限制条件
//使用类里面的魔术方法实现对私有成员的操作
//__set()特性:自动执行,把赋值语句中的变量作为第一个参数,把赋值语句中的变量值作为第二个参数,调用__set()方法
//__get()特性:自动执行,把取值语句中的变量作为参数调用__get方法
//小结:对private类私有成员的操作,只需假如__set(),__get()函数即可。
//2.继承
//3.多态
?>
class Ren
{
private $name;
private $age;
private $sex;
function __set($name,$value)
{
if($name == "age")
{
if($value < 50 && $value > 10)
{
$this->$name = $value;
}
}
else
{
$this->$name = $value;
}
}
function __get($name)
{
return $this->$name;
}
function __destruct()
{
echo "结束啦。对象销毁";
}
}
$r = new Ren();
$r->name = "张三";
$r->age = 30;
$r->sex="女";
var_dump($r);
echo $r->age;
//面向对象的三大特性
//1.封装
//1)目的:让类更加安全,不让外界直接访问类里面的成员变量
//2)做一个方法来实现变量取值或赋值,在方法里加限制条件
//使用类里面的魔术方法实现对私有成员的操作
//__set()特性:自动执行,把赋值语句中的变量作为第一个参数,把赋值语句中的变量值作为第二个参数,调用__set()方法
//__get()特性:自动执行,把取值语句中的变量作为参数调用__get方法
//小结:对private类私有成员的操作,只需假如__set(),__get()函数即可。
//2.继承
//3.多态
?>
相关文章推荐
- MySQL数据类型:SQL_MODE设置不容忽视
- C#OOP之七 多态的学习和使用
- C#OOP之七 多态的学习和使用
- C#OOP之七 多态的学习和使用
- hadoop集群搭建
- c印记(六): 数组与递归联合应用的小游戏
- 第九周上机实践项目——项目3-人数不定的工资类
- js实现打字机效果
- php之cookie【1】
- 派生类环境中基类对象不能访问自己的保护成员
- python-lmdb
- Java编程基础知识复习:变量与数据类型<数据类型初阶>
- android 布局relativeLayout实现底部标签
- warshall's algorithm
- Mac中利用 python 安装 web 服务器
- C++使用throw抛出异常
- JAVA REVIEW_JVM类的加载、连接、初始化
- disappointed
- ant常用功能
- xcode7.3出现the behavior of the UICollectionViewFlowLayout is not defined警告