php 的简单存在 (魔术方法作用之一:容错)

<span style="font-family:KaiTi_GB2312;font-size:18px;"><?php
// 重载
class Person{
	//定义属性
	public $name;
	private $age;

	//构造方法
	public function __construct($name,$age){
		$this->name =$name;
		$this->age  =$age;
	}

	//获取魔术方法
	# @param  string   $name
	public function __get($param){
		// return $this->$param;
		#允许被访问的属性
		$allow = array('age');
		if(in_array($param, $allow)){
			return $this->$param;
		}
	}

	//__set() 设置魔术方法
	#@param  string $name
	#param   string $val
	public function __set($name,$val){
		$allow = array('age','money');
		if(in_array($name, $allow)){
			$this->$name=$val;
		}
	}

	// __isset() 判定数据
	public function __isset($name){
		return isset($this->$name);
	}

	//__unset 销毁数据
	public function __unset($name){
		//建立unset列表
		$allow =array('tail');
		if(in_array($name,$allow)){
			echo 'unset running';
			unset($this->$name);
		}
	}
}

//实例化
$p = new Person('zp',21);
$p->age = 200;

echo $p->money = 200000000;
$p->tail ="a";

var_dump(isset($p->name));
var_dump(isset($p->age));
var_dump(isset($money));

// var_dump(empty($tail));
unset($p->tail);
// var_dump($tail);

</span>
时间: 2024-11-10 01:49:16

php 的简单存在 (魔术方法作用之一:容错)的相关文章

PHP中的常见魔术方法功能作用及用法实例

概述 在面向对象编程中,PHP提供了一系列的魔术方法,这些魔术方法为编程提供了很多便利.PHP中的魔术方法通常以__(两个下划线)开始,并且不需要显示的调用而是由某种特定的条件出发.这篇文章简单总结了PHP中提供的魔术方法. 开始之前 在总结PHP的魔术方法之前先来定义两个类,以便后边示例使用: 复制代码代码如下: <?phpclass Device {    public $name;               public $battery;            public $data

PHP中的抽象类与抽象方法/静态属性和静态方法/PHP中的单利模式(单态模式)/串行化与反串行化(序列化与反序列化)/约束类型/魔术方法小结

  前  言  OOP  学习了好久的PHP,今天来总结一下PHP中的抽象类与抽象方法/静态属性和静态方法/PHP中的单利模式(单态模式)/串行化与反串行化(序列化与反序列化). 1  PHP中的抽象类与抽象方法 1.什么是抽象方法?              没有方法体 {} 的方法,必须使用abstract 关键字修饰.这样的方,我们叫做抽象方法.                    abstract function say(); //    抽象方法 2.什么是抽象类?        

PHP利用魔术方法实现准AOP

PHP利用魔术方法实现准AOP 在 传统的OOP(面向对象编程:Object-Oriented Programming)思想里,一般把应用程序分解成若干个的对象,强调高内聚,弱耦合,从而提高应用程序的模块化程度,但是在处理某些问题的时 候,OOP会显得不够灵活,比如说,应用程序里很多业务逻辑都要在操作之初进行“权限检查”,在操作之后进行“日志记录”,如果直接把处理这些操作的代码 加入到每个模块中,那么无疑破坏了OOP的“单一职责”原则,模块的可重用性会大大降低,这时候传统的OOP设计往往采取的策

Python中类的特殊属性和魔术方法

1.属性 属性 含义 __name__ 类.函数.方法等的名字   __dir__ __module__ 类定义所在的模块名 __class__ 对象或类所属的类   只是返回基类 __bases__ 返回自己到object的类,类的基类元组,顺序为在基类列表中出现的顺序. __doc__ 类,函数的文档字符串,如果没有定义则为None. __mro__ 类的不是实例的.类的mro,class.mro()返回的结果保存在__mro__中. __dict__ 类或实例属性,可写的字典. 标识符和名

pyhton中的魔术方法

魔术方法 ***** 特殊属性 属性 说明 __name__ 类.函数.方法等的名字 __module__ 类定义所在的模块名 __class__ 对象或类所属的类 __bases__ 类的基类的元组,顺序为它们在基类列表中出现的顺序 __doc__ 类.函数的文档字符串,如果没有定义则为 None __mro__ 类的mro,class.mro()返回的结果的保存在 __mro__ 中 __dict__ 类或实例的属性,可写的字典 查看属性 __dir__ 方法 方法 说明 __dir__ 返

php 魔术方法 和 魔术常量

魔术方法: PHP把类中所有以__(两个下划线)开头的方法当成魔术方法,一般建议用户不要将自定义的方法前面加上__作为前缀.魔术方法: 1. __construct() 类的默认构造方法,如果__construct()和与类同名的方法共同出现时,默认调用__construct()而不是同类名方法.一般情况下用户自定义构造方法也会使用__construct(). 2. __destruct() 类的析构函数,当该对象的所有引用都被删除,或者对象被显式销毁时执行. 3. __get($name) 可

PHP中的魔术方法总结

最近买了部安卓的手机,google nexus5 系统是安卓4.4.2. 刚到手就发现链接wifi有问题,一直在获取ip(obtaining ip...)和验证.试过恢复出厂 重启 各种都不管用,只有设置静态ip才可以,但是不能一直这样子呀!! 查了下路由器,路由器已经分配了地址.所以最大可能就是安卓手机上拿到这个地址没有成功写入配置文件,为什么没有写入呢,就是权限的问题了,不明白为什么google会出现这个错误. 因为不熟悉安卓系统,所以查了好几天,终于在一个外国网站上发现了下面这个解决办法,

PHP中的面向对象OOP中的魔术方法

一.什么是魔术方法: PHP为我们提供了一系列用__开头的函数,这些函数无需自己手动调用,会在合适的时机自动调用,这类函数称为魔术函数.例如: function __construct(){} 在new一个新对象时自动调用此函数 二.PHP中都有那些魔术方法,以及它们的作用:1.__construct():构造函数,new对象时自动调用 eg: class Person{ public $name; public $age; function __construct($name,$age){ $

php中常用到的魔术方法

PHP面向对象中有很多功能很强大,不得不说的就是魔术方法了.今天抽出时间记录几个比较常用的魔术方法: 1.__construct 这是构造函数,指当一个类被实例化的时候就会自动调用的函数.那我们可以在这里初始化变量的值.例如: class Score { public $chinese; public $english; public $math; public function __construct($chinese=100,$english=99,$math=98) { $this->ch