PHP面向对象之构造方法__construct()和析构方法
- 3825
- 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的使用示例

