PHP __destruct()构造函数和析构函数.pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
PHP __destruct()构造函数和析构函数

PHP __destruct()构造函数和析构函数 构造函数 void __construct ([ mixed $args [, $... ]] ) PHP 5 允⾏开发者在⼀个类中定义⼀个⽅法作为构造函数。具有构造函数的类会在每 次创建新对 时先调⽤此⽅法,所以⾮常适合在使⽤对 之前做⼀些初始化⼯作。 Note: 如果⼦类中定义了构造函数则不会隐式调⽤其⽗类的构造函数。要 执⾏⽗类的构造函数,需要在⼦类的构造函数中调 ⽤parent::__construct() 。如果⼦类没有定义构造函数则会如同⼀个普通的 类⽅法⼀样从⽗类继承 (假如没有被定义为 private 的话)。 实例 使⽤新标准的构造函数: ?php class SubObject { static $instances 0; public $instance; public function __construct() { $this-instance ++self::$instances; } public function __clone() { $this-instance ++self::$instances; } } class MyCloneable { public $object 1; public $object2; function __clone() { // 强制复制⼀份this-object , 否则仍然指向同⼀个对 $this-object 1 clone $this-object 1; } } $obj new MyCloneable(); $obj -object 1 new SubObject(); $obj -object2 new SubObject(); $obj 2 clone $obj ; print(Original Object:\n); print_r($obj ); print(Cloned Object:\n); print_r($obj 2); ? 运⾏实例 » 为了实现向后兼容性,如果 PHP 5 在类中找不到 __construct() 函数并且也没有从⽗类 继承⼀个的话,它就会尝试寻找旧式的构造函数,也就是和类同名的函数。 因此唯⼀会产⽣兼容性问题的情况是:类中已有⼀个名为 __construct() 的⽅法却被⽤ 于其它⽤途时。 与其它⽅法不同,当 __construct() 被与⽗类 __construct() 具有不同参数的⽅法覆盖 时,PHP 不会产⽣⼀个 E_STRICT 错误信息。 ⾃ PHP 5.3.3 起,在命名空间中,与类名同名的⽅法不再作为构造函数。这⼀改变不 影响不在命名空间中的类。 php namespace Foo; class Bar { public function Bar() { // treated as constructor in PHP 5.3.0-5.3.2 // treated as regular method as of PHP 5.3.3 } } 析构函数 void __destruct ( void ) PHP 5 引⼊了析构函数的概念,这类似于其它⾯向对 的语⾔,如 C++ 。析构函数会 在到某个对 的所有引⽤都被删除或者当对 被显式销毁时执⾏。 实例 析构函数⽰例: ?php class MyDestructableClass { function __construct() { print In constructor\n; $this-name MyDestructableClass; } function __destruct() { print Destroying . $this-name . \n; } } $obj new MyDestructableClass(); ? 运⾏实例 » 和构造函数⼀样,⽗类的析构函数不会被引擎暗中调⽤。要执⾏⽗类的析构函数,必 须在⼦类的析构函数体中显式调⽤ parent::__destru

文档评论(0)

wnqwwy20 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:7014141164000003

1亿VIP精品文档

相关文档