php基础知识:类与对象(3) 构造函数和析构函数

 更新时间:2006年12月13日 00:00:00   作者:  
构造函数
PHP 5 允行开发者在一个类中定义一个方法作为构造函数。具有构造函数的类会在每次创建对象时先调用此方法,所以非常适合在使用对象之前做一些初始化工作。 
注意: 
如果子类中定义了构造函数则不会暗中调用其父类的构造函数。要执行父类的构造函数,需要在子类的构造函数中调用 parent::__construct()。(??和其他语言明显不同??)

例10.8.使用新标准的构造函数
class BaseClass {
  function __construct() {
      print "In BaseClass constructor\n";
  }
}

class SubClass extends BaseClass {
  function __construct() {
      parent::__construct();
      print "In SubClass constructor\n";
  }
}
$obj = new BaseClass();
$obj = new SubClass();

为了实现向后兼容性,如果 PHP 5 在类中找不到 __construct() 函数,它就会尝试寻找旧式的构造函数,也就是和类同名的函数。因此唯一会产生兼容性问题的情况是:类中已有一个名为 __construct() 的方法,但它却又不是构造函数。 

析构函数
PHP 5 引入了析构函数的概念,这类似于其它面向对象的语言,如 C++。析构函数会在到某个对象的所有引用都被删除或者当对象被显式销毁时执行。 
例10.9.析构函数示例
class MyDestructableClass {
  function __construct() {
      print "In constructor\n";
      $this->name = "MyDestructableClass";
  }

  function __destruct() {
      print "Destroying " . $this->name . "\n";
  }
}
$obj = new MyDestructableClass();
和构造函数一样,父类的析构函数不会被引擎暗中调用。要执行父类的析构函数,必须在子类的析构函数体中显式调用 parent::__destruct()。 (??和其他语言明显不同??)
注意: 
析构函数在脚本关闭时调用,此时所有的头信息已经发出。 
注意: 
试图在析构函数中抛出一个异常会导致致命错误。

相关文章

  • PHP基础知识详细讲解

    PHP基础知识详细讲解

    PHP是安全中需要掌握的一门语言,就这么一点儿时间教网络安全,不可能精通,这里就不要求你精通PHP,但是对于一些基础代码能够认识、能够编写那么就可以了
    2022-12-12
  • php实现的pdo公共类定义与用法示例

    php实现的pdo公共类定义与用法示例

    这篇文章主要介绍了php实现的pdo公共类定义与用法,结合具体实例形式分析了php实现的pdo操作类定义及查询、插入等使用技巧,需要的朋友可以参考下
    2017-07-07
  • php实现xml数据转数组两种方式

    php实现xml数据转数组两种方式

    这篇文章主要为大家详细介绍了php实现xml数据转数组两种方式的相关知识,文中的示例代码讲解详细,具有一定的借鉴价值,感兴趣的小伙伴可以参考下
    2023-11-11
  • PHPExcel读取EXCEL中的图片并保存到本地的方法

    PHPExcel读取EXCEL中的图片并保存到本地的方法

    这篇文章主要介绍了PHPExcel读取EXCEL中的图片并保存到本地的方法,本文直接给出代码实例,需要的朋友可以参考下
    2015-02-02
  • PHP $_FILES函数详解

    PHP $_FILES函数详解

    在PHP中上传一个文件建一个表单要比ASP中灵活得多。具体的看代码。
    2011-03-03
  • PHP常用函数总结(180多个)

    PHP常用函数总结(180多个)

    这篇文章主要介绍了PHP常用函数总结(160多个),需要的朋友可以参考下
    2016-12-12
  • php !function_exists("T7FC56270E7A70FA81A5935B72EACBE29"))代码解密

    php !function_exists("T7FC56270E7A70FA81A5935B72EACBE29

    今天在百度知道上面有个朋友问php代码解密的问题,看了代码不是常见几种比较感兴趣,特意搜索了下,发现下面的方法,解决了,具体的看最后的说明。
    2011-01-01
  • php中adodbzip类实例

    php中adodbzip类实例

    这篇文章主要介绍了php中adodbzip类,以实例形式详细讲述了adodbzip类文件的实现方法与使用技巧,注释中包含详尽的功能说明,非常具有实用价值,需要的朋友可以参考下
    2014-12-12
  • PHP获取栏目的所有子级和孙级栏目的ID号示例

    PHP获取栏目的所有子级和孙级栏目的ID号示例

    这篇文章主要介绍了PHP获取栏目的所有子级和孙级栏目的ID号的具体实现,需要的朋友可以参考下
    2014-04-04
  • PHP获取中国时间(上海时区时间)及美国时间的方法

    PHP获取中国时间(上海时区时间)及美国时间的方法

    这篇文章主要介绍了PHP获取中国时间(上海时区时间)及美国时间的方法,涉及php时区选择及日期时间相关操作技巧,非常简单实用,需要的朋友可以参考下
    2017-02-02

最新评论