魔术方法
来源:互联网 发布:卖家淘宝分销在哪里 编辑:程序博客网 时间:2024/04/28 23:32
有__set() __get() __isset() __unset() 等
在php使用中会有很多的预定义方法,而这些方法大部分是需要在类中声明,需要用的的时候才会添加到类中。
他们在使用时的方法,作用,使用参数列表还有返回值都是已经规定好的。每个预定义方法都有自己的作用。
在使用时是在需要的时候自动调用的。
在声明类时有公有 私有 保护 等一般情况下把类定义为private的,这样更符合实际,能起到保护作用。
__set() __get() 是预定义方法
__isset() 是用来检查私有属性是否存在的方法
__unset() 用来删除对象中私有属性的方法
__set() 因为使用private以后会需要繁琐的操作 , 而使用__set()可以解决, 控制在对象外部只能为私有成员属性赋值,不能获取私有属性的值.
需要在声明类时自己将它添加到类中使用
如 void __set(string name.mixed value) 方法体的内容需要自定义
<?php
class Persion{ //声明一个persion的人类,其中包含的三个成员属性被封装起来
//下面是声明人的成员属性,全部使用了private关键子封装
private $name;
private $sex;
private $age;
//声明一个构造方法,将来创建对象时,为对象的成员属性赋予初值
function __construct($name="",$sex="男",$age=1){
$this->name=$name;
$this->sex=$sex;
$this->age=$age;
}
//声明魔术方法需要两个参数,直接为私有的属性赋值是自动调用,冰可以屏蔽一些非法赋值
private function __set($propertyName,$propertyValue){
if($propertyName=="sex"){
if(!($propertyValue=="男"||$propertyValue=="女"))
return;
}
if($propertyName=="age"){
if(!($propertyValue>150||$propertyValue<0))
return;
}
$this->$propertyName=$propeValue;
}
public function say(){
echo "我的名字是:".$this->name.",性别:".$this->sex.",我的年龄是:".$this->age.".<br>";
}
}
$person1=new Person("张三","男",20);
$person1->name=”李四”;
$person1->sex=”女”;
$person1->age=”40”;
$person1->sex=”保密”;
$person->age=”800”;
$person->say();
结果: 我的名字叫:李四性别:女 我的年龄是40
?>
- 魔术方法
- 魔术方法:
- 魔术方法
- 魔术方法
- 魔术方法
- 魔术方法
- 魔术方法
- 魔术方法
- 魔术方法
- 魔术方法
- PHP5魔术常量、魔术方法
- php魔术常量,魔术方法
- 魔术方法和魔术常量
- php魔术方法和魔术变量
- php 魔术方法与魔术常量 汇总~
- php魔术方法和魔术变量
- PHP魔术方法和魔术常量
- php魔术方法与魔术常量
- ☆FPS集合
- CHECKBOX全选
- 5.IDA-文本搜索、二进制搜索(16进制字节序列)、替换16进制
- jqueryUI sortable selectable
- android 实现即时通知
- 魔术方法
- 防脚本注入JS
- 动态方法与静态方法的区别
- vmware的tool安装后不能拖拽等原因
- 解读Adobe对于HTML5和Flash未来战略
- ALV的颜色分为行的颜色、列的颜色和CELL的颜色。
- 在vs2008下制做c/s程序安装包(中包含第三方控件注册)
- CXF 入门实例
- mysql的limit的用法详细