PHP面向对象之构造方法__construct()和析构方法
- 3355
- PHP
- 7
- super_dodo
- 2016/08/12
在PHP中定义类可能需要用到PHP中的构造函数不同,在PHP中构造函数用__construct() 这样可以保证在改变类名的时候不用再去改变构造函数名。它还有一个析构函数__destruct(),用它来销毁实例,释放资源。
一旦你定义了一个类,你可以用new来建立一个这个类的实例. 类的定义是设计图,实例则是放在装配线上的元件. New需要类的名称,并返回该类的一个实例. 如果构造函数需要参数,你应当在new后输入参数.
/** * 计数的类,用来演示PHP的构造函数和析构函数 */ class Counter{ private static $count = 0; private static $bb = 0; //构造函数 function __construct($aa){ self::$count++; $this->aa = $aa; self::$bb = $aa*self::$count; } //析构函数 function __destruct(){ self::$count--; } //得到当前的计数器的值 function getCount(){ return self::$count; } //得到aa的值 function getAa(){ return $this->aa; } //得到bb的值 function getBb(){ return self::$bb; } } //建立第一个实例 $c = new Counter($aa='111'); //此时就调用了构造函数 echo $c->getCount()."<hr>"; //输出1 //建立第二个实例 $c1 = new Counter($aa='111'); echo $c->getCount()."<hr>"; //输出2 //建立第三个实例 $c2 = new Counter($aa='111'); echo $c->getCount()."<hr>"; //输出3 //销毁实例 $c2 = NULL; //调用了析构函数 echo $c->getCount()."<hr>"; //输出2 //-- echo $c->getAa()."<hr>"; //输出 111 echo $c->getBb()."<hr>"; //输出 333
__construct() 函数创建一个新的 SimpleXMLElement 对象。如果成功,则该函数返回一个对象。如果失败,则返回 false。
//语法: __construct(data,options,is_url,ns,is_prefix) //参数 描述 data 必需。形式良好的 XML 字符串或 XML 文档的路径或 URL。 options 可选。规定附加的 Libxml 参数。 is_url 可选。规定 data 参数是否是 URL。默认是 false。 ns 可选。 is_prefix 可选。
在类中声明构造方法需要注意的事项
1、在同一个类中只能声明一个构造方法,原因是,PHP不支持构造函数重载。
2、构造方法名称是以两个下画线开始的__construct()
class Person{ public $name; public $age; public $sex; public function __construct($name="",$sex="男",$age=27){ //显示声明一个构造方法且带参数 $this->name=$name; $this->sex=$sex; $this->age=$age; } public function say(){ echo "我叫:".$this->name.",性别:".$this->sex.",年龄:".$this->age; } } //创建对象$person1且不带任参数 $person1= new Person(); echo $person1->say();//输出:我叫:,性别:男,年龄:27 //创建对象$person2且带参数"张三" $person2= new Person("张三"); echo $person2->say();//输出:我叫:张三,性别:男,年龄:27 //创建对象$person3且带三个参数 $person3= new Person("李四","男",25); echo $person3->say();//输出:我叫:李四,性别:男,年龄:25
相关阅读
- 通过Google API客户端访问Google Play帐户报告PHP库
- PHP执行文件的压缩和解压缩方法
- 消息中间件MQ与RabbitMQ面试题
- 如何搭建一个拖垮公司的技术架构?
- Yii2中ElasticSearch的使用示例
热门文章
- 通过Google API客户端访问Google Play帐户报告PHP库
- PHP执行文件的压缩和解压缩方法
- 消息中间件MQ与RabbitMQ面试题
- 如何搭建一个拖垮公司的技术架构?
- Yii2中ElasticSearch的使用示例
最新文章
- 通过Google API客户端访问Google Play帐户报告PHP库
- PHP执行文件的压缩和解压缩方法
- 消息中间件MQ与RabbitMQ面试题
- 如何搭建一个拖垮公司的技术架构?
- Yii2中ElasticSearch的使用示例