一、构造方法
构造方法是类中一个“特殊”的方法,作用是在实例化一个对象的同时,给该对象的属性赋值,使之创建完成的时就具有其本身的特有属性
-
- 该方法固定格式:[访问修饰符] function _construct(...) {代码块;}
- 修饰符通常为public
- 通常使用$this关键字来对属性进行赋值
- 创建对象的时候自动调用
示例:
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <?php class Persion { private $name = ""; private $age = 0; private $sex = ""; function __construct($name, $age, $sex) { $this->name = $name; $this->age = $age; $this->sex = $sex; } public function self_introduction() { echo "我是".$this->name." 我今年".$this->age." 岁!<br />"; } } $p1 = new Persion('张三', 30, "男"); $p1->self_introduction(); $p2 = new Persion("李四", 25, "男"); $p2->self_introduction(); ?> </body> </html>
结果:
我是张三 我今年30 岁!
我是李四 我今年25 岁!
二、析构函数
在“销毁对象”的时候自动调用,销毁情况:
-
- unset(对面)
- 没有变量指向该对象对应的内存地址
- 程序结束
说明:
-
- 析构方法定义:public function _destruct() {...}//注意只能是public修饰,且不能有参数
- 析构方法用于销毁对象时对对象中的一些资源进行清理--php有内置垃圾回收机制,一般不需要定义
示例:
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <?php class P { private $name = ""; function __construct($name) { $this->name = $name; echo "对象".$this->name."创建了<br />"; } function __destruct() { echo "对象".$this->name."销毁了<br />"; } } $p1 = new P("p1"); $p2 = new P("p2"); $p1 = new P("p3"); echo "没有变量指向<br />"; echo "<hr />"; echo "unset('p2')<br />"; unset($p2); echo "<hr />"; echo "程序结束<br />"; ?> </body> </html>
结果:
对象p1创建了 对象p2创建了 对象p3创建了 对象p1销毁了 没有变量指向 unset('p2') 对象p2销毁了 程序结束 对象p3销毁了