php基础知识:类与对象(3) 构造函数和析构函数
作者:bea
构造函数 PHP5允行开发者在一个类中定义一个方法作为构造函数。具有构造函数的类会在每次创建对象时先调用此方法,所以非常适合在使用对象之前做一些初始化工作。 注意: 如果子类中定义了构造函数则不会暗中调用其父类的构造函数。要执行父类的构造函数,需要在子类的构造函数中调用parent::__construct()。(??和其他语言明显不同??) 例10.8.使用新标准的构造函数 classBaseClass{ function__construct(){ print"InBas
构造函数
PHP 5 允行开发者在一个类中定义一个方法作为构造函数。具有构造函数的类会在每次创建对象时先调用此方法,所以非常适合在使用对象之前做一些初始化工作。
注意:
如果子类中定义了构造函数则不会暗中调用其父类的构造函数。要执行父类的构造函数,需要在子类的构造函数中调用 parent::__construct()。(??和其他语言明显不同??)
例10.8.使用新标准的构造函数
class BaseClass {
function __construct() {
print "In BaseClass constructor
";
}
}
class SubClass extends BaseClass {
function __construct() {
parent::__construct();
print "In SubClass constructor
";
}
}
$obj = new BaseClass();
$obj = new SubClass();
为了实现向后兼容性,如果 PHP 5 在类中找不到 __construct() 函数,它就会尝试寻找旧式的构造函数,也就是和类同名的函数。因此唯一会产生兼容性问题的情况是:类中已有一个名为 __construct() 的方法,但它却又不是构造函数。
析构函数
PHP 5 引入了析构函数的概念,这类似于其它面向对象的语言,如 C++。析构函数会在到某个对象的所有引用都被删除或者当对象被显式销毁时执行。
例10.9.析构函数示例
class MyDestructableClass {
function __construct() {
print "In constructor
";
$this->name = "MyDestructableClass";
}
function __destruct() {
print "Destroying " . $this->name . "
";
}
}
$obj = new MyDestructableClass();
和构造函数一样,父类的析构函数不会被引擎暗中调用。要执行父类的析构函数,必须在子类的析构函数体中显式调用 parent::__destruct()。 (??和其他语言明显不同??)
注意:
析构函数在脚本关闭时调用,此时所有的头信息已经发出。
注意:
试图在析构函数中抛出一个异常会导致致命错误。
有用 |
无用
PHP 5 允行开发者在一个类中定义一个方法作为构造函数。具有构造函数的类会在每次创建对象时先调用此方法,所以非常适合在使用对象之前做一些初始化工作。
注意:
如果子类中定义了构造函数则不会暗中调用其父类的构造函数。要执行父类的构造函数,需要在子类的构造函数中调用 parent::__construct()。(??和其他语言明显不同??)
例10.8.使用新标准的构造函数
class BaseClass {
function __construct() {
print "In BaseClass constructor
";
}
}
class SubClass extends BaseClass {
function __construct() {
parent::__construct();
print "In SubClass constructor
";
}
}
$obj = new BaseClass();
$obj = new SubClass();
为了实现向后兼容性,如果 PHP 5 在类中找不到 __construct() 函数,它就会尝试寻找旧式的构造函数,也就是和类同名的函数。因此唯一会产生兼容性问题的情况是:类中已有一个名为 __construct() 的方法,但它却又不是构造函数。
析构函数
PHP 5 引入了析构函数的概念,这类似于其它面向对象的语言,如 C++。析构函数会在到某个对象的所有引用都被删除或者当对象被显式销毁时执行。
例10.9.析构函数示例
class MyDestructableClass {
function __construct() {
print "In constructor
";
$this->name = "MyDestructableClass";
}
function __destruct() {
print "Destroying " . $this->name . "
";
}
}
$obj = new MyDestructableClass();
和构造函数一样,父类的析构函数不会被引擎暗中调用。要执行父类的析构函数,必须在子类的析构函数体中显式调用 parent::__destruct()。 (??和其他语言明显不同??)
注意:
析构函数在脚本关闭时调用,此时所有的头信息已经发出。
注意:
试图在析构函数中抛出一个异常会导致致命错误。
猜你喜欢
您可能感兴趣的文章:
- 使用 MySQL 开始 PHP 会话
- PHP 编程请选择正确的文本编辑软件
- PHP 模板高级篇总结
- PHP函数utf8转gb2312编码
- 小偷PHP+Html+缓存
- PR值查询 | PageRank 查询
- 转PHP手册及PHP编程标准
- IIS环境下快速安装、配置和调试PHP5.2.0
- 亲密接触PHP之PHP语法学习笔记1
- PHP读MYSQL中文乱码的解决方法
- 落伍首发 php+mysql 采用ajax技术的 省 市 地 3级联动无刷新菜单 源码
- php 进阶:实现无限分类
- 缓存技术详谈—php
- PHP面向对象编程快速入门
- 如何对PHP程序中的常见漏洞进行攻击(上)
- Breeze 文章管理系统 v1.0.0正式发布
- 谈谈新手如何学习PHP
- php基础知识:类与对象(5) static
- php基础知识:类与对象(4) 范围解析操作符(::)