HTML HTML5 PHP Mysql Linux 缓存技术 工具 资讯 读书 其他
当前位置: 资讯首页 » 全文内容

魔法函数 __set 与 __get

发布于: 2015-03-28 11:39:54 )

一般来说,总是把类的属性定义为private,这更符合现实的逻辑。

但是,对属性的读取和赋值操作是非常频繁的,因此在PHP5中,预定义了两个函数“__get()”和“__set()”来获取和赋值其属性。

在PHP5中给我们提供了专门为属性设置值和获取值的方法,“__set()”和“__get()”这两个方法,这两个方法不是默认存在的,而是我们手工添加到类里面去的,像构造方法(__construct())一样,类里面添加了才会存在。

实例:

	class Person{
		private $name;
		private $age;
		private $sex;
		function __construct(){

		}
		public function __set($property,$value){
			$this->$property = $value;
		}
		public function __get($name){
			return $this->$name;
		}
	}
	$p = new Person();
	//调用类中的__set 方法
	$p->name = "jackwoo";
	//调用类中的__get方法
	echo $p->name;


如果类中不定义_set() 和_get 方法会报错。

To Top