PHP 类和对象(构造函数和析构函数)
2017-12-16 18:57
489 查看
1.构造函数 :__construct( )
PHP 5 允行开发者在一个类中定义一个方法作为构造函数。
具有构造函数的类会在每次创建对象时先调用此方法,所以非常适合在使
用对象之前做一些初始化工作。
如下例1:
class fun1{
function __construct(){
print "开头就调用构造函数\n";
}
}
$Tom=new fun1();//结果为"开头就调用构造函数"
注意:
如果子类中定义了构造函数则不会调用其父类的构造函数。
要执行父类的构造函数,需要在子类的构造函数中调用 parent::__construct( )。
如例2所示:
例2:使用新标准的构造函数
class fun1{
function __construct(){
print "开头就调用构造函数fun1"."<br />";
}
}
class fun2 extends fun1{
function __construct(){
print "开头就调用构造函数fun2\n"."<br />";
parent::__construct();
}
}
$aaa=new fun1();
//"开头就调用构造函数fun1"
$bbb=new fun2();
//"开头就调用构造函数fun2 开头就调用构造函数fun1"
2.析构函数
PHP 5 引入了析构函数的概念。
析构函数会在到某个对象的所有引用都被删除或者当对象被显式销毁时执行。
例3.析构函数示例
class fun1{
function __construct(){
print "开头就调用构造函数fun1"."<br />";
}
function __destruct(){
print "当对象被销毁时调用析构函数"."<br />";
}
}
$Tom=new fun1();
//"开头就调用构造函数fun1"
echo "当Tom对象被销毁时调用析构函数"."<br />";
unset($Tom);
//"当对象被销毁时调用析构函数"
和构造函数一样,父类的析构函数不会被引擎暗中调用。
要执行父类的析构函数,必须在子类的析构函数体中显式调用 parent::__destruct()。
注意:
析构函数在脚本关闭时调用,此时所有的头信息已经发出。
试图在析构函数中抛出一个异常会导致致命错误。
PHP 5 允行开发者在一个类中定义一个方法作为构造函数。
具有构造函数的类会在每次创建对象时先调用此方法,所以非常适合在使
用对象之前做一些初始化工作。
如下例1:
class fun1{
function __construct(){
print "开头就调用构造函数\n";
}
}
$Tom=new fun1();//结果为"开头就调用构造函数"
注意:
如果子类中定义了构造函数则不会调用其父类的构造函数。
要执行父类的构造函数,需要在子类的构造函数中调用 parent::__construct( )。
如例2所示:
例2:使用新标准的构造函数
class fun1{
function __construct(){
print "开头就调用构造函数fun1"."<br />";
}
}
class fun2 extends fun1{
function __construct(){
print "开头就调用构造函数fun2\n"."<br />";
parent::__construct();
}
}
$aaa=new fun1();
//"开头就调用构造函数fun1"
$bbb=new fun2();
//"开头就调用构造函数fun2 开头就调用构造函数fun1"
2.析构函数
PHP 5 引入了析构函数的概念。
析构函数会在到某个对象的所有引用都被删除或者当对象被显式销毁时执行。
例3.析构函数示例
class fun1{
function __construct(){
print "开头就调用构造函数fun1"."<br />";
}
function __destruct(){
print "当对象被销毁时调用析构函数"."<br />";
}
}
$Tom=new fun1();
//"开头就调用构造函数fun1"
echo "当Tom对象被销毁时调用析构函数"."<br />";
unset($Tom);
//"当对象被销毁时调用析构函数"
和构造函数一样,父类的析构函数不会被引擎暗中调用。
要执行父类的析构函数,必须在子类的析构函数体中显式调用 parent::__destruct()。
注意:
析构函数在脚本关闭时调用,此时所有的头信息已经发出。
试图在析构函数中抛出一个异常会导致致命错误。
相关文章推荐
- php基础知识:类与对象(3) 构造函数和析构函数
- PHP基础之类和对象5——构造函数和析构函数
- php部分---面向对象:定义、实例化、构造函数、析构函数;
- 【php手册:类与对象】构造函数和析构函数
- PHP面向对象中的构造函数和析构函数
- php 面向对象中构造函数(__contruct())和析构函数(__destruct())
- PHP对象2: 构造函数与析构函数
- php面向对象学习笔记01-面向对象介绍、构造函数、析构函数
- 【面向对象】php新手之学习类与对象-构造函数与析构函数
- php基础知识:类与对象(3) 构造函数和析构函数
- c++中,类 和 类中成员(对象)的构造函数和析构函数的执行顺序
- PHP面向对象——构造函数、析构函数
- php初始化对象和析构函数的简单实例
- 建立不同类型对象时,构造函数和析构函数的调用顺序
- [反射类] -- PHP动态实例化对象并向构造函数传递参数
- 对象的生灭——构造函数、拷贝构造函数、赋值构造函数和析构函数
- C++学习(构造函数与析构函数、对象数组与对象指针)
- C++ 构造函数、默认构造函数、析构函数和对象初始化
- 利用php的构造函数与析构函数编写Mysql数据库查询类
- php 析构函数,构造函数