php面向对象第三篇(__set,__get,__isset,__unset)的用法

2020-10-28 15:12:37 浏览数 (2)

封装的四个魔术常量: __set,__get,__isset,__unset四个方法。 问题:构造函数与析构函数的用法:

代码语言:javascript复制
<?php
	class people
	{
		
		function __construct($_name,$_age)
		{
			$this->name=$_name;
			$this->age=$_age;
			echo "是个对象了".'<br>';
		}
		function __destruct()//注意,析构函数不能有参数哈
		{
			echo "被销毁了...";
		}
		
	}
	$p1=new people('cyg',20);

?>

//__set与__get函数的用法:

代码语言:javascript复制
<?php
	class people
	{
		private $name='cyg';
		function __get($name)//然后是获取到$value所赋值的变量了$name了
		{//然后返回把...
			return $this->$name;
		}
		function __set($name,$value)//第一个是赋值的左边,第二个是右边.$value是cyg,$name是新定义的变量
		{
			$this->$name=$value;
		}
		
	}
	$p1=new people();
	echo'当自动获取属性存在时,我的名字是:'.$p1->name;

?>

//__isset与__unset的运用:

代码语言:javascript复制
<?php
	class people
	{
		var $name='cyg';
		public function __isset($nm)//看看存不存在把
		{
			return isset($this->$nm);//返回true或者false
		}
		public function __unset($nm)
		{
			unset($this->$nm);//销毁不需要返回了,因为什么都没有了,都没有值了
		}
	}
	$p1=new people();
	echo isset($p1->name);//1代表存在值,0代表不存在把
	echo "<br />";
	echo "下面是上面都没有了";
	unset($p1->name);

?>

记住,__isset与__unset是public类型的哈.

继承: 父类—基类 子类–派生类

0 人点赞