首页 > php教程 > php手册 > 正文

php构造函数和析构函数

php中文网
发布: 2016-06-06 19:49:31
原创
1214人浏览过

php构造函数 php5允许开发者在一个类中定义一个方法作为构造函数。具有构造函数的类会在每次创建新对象是先调用此方法,适合在使用对象之前做一些初始化的工作 注意:如果子类中定义了构造函数则不会隐式调用其父类的构造函数。要执行父类的构造函数,需要在

php构造函数

php5允许开发者在一个类中定义一个方法作为构造函数。具有构造函数的类会在每次创建新对象是先调用此方法,适合在使用对象之前做一些初始化的工作

注意:如果子类中定义了构造函数则不会隐式调用其父类的构造函数。要执行父类的构造函数,需要在子类的构造函数中调用parent::__cinstruct();

  1. 如果php5在类中找不到__construct()函数,它会尝试寻找旧式的构造函数,也就是和类名相同的函数,类似java的类方法。因此唯一会产生兼容性问题的情况是:类中已有名为__construct()的方法,但它却不是构造函数
  2. 当__construct()被父类__construct()具有不同参数的方法覆盖时,php不会产生一个E_STRICT的错误信息
  3. 构造函数没有参数,使用调用参数的构造函数不会抛出错误/警告

class A{

         public function __construct(){

                   echo "hello";

         }

}

$arg=1;

$a=new A($arg);
登录后复制

  

打印结果:hello

立即学习PHP免费学习笔记(深入)”;

 

/**

使用并调用多个构造函数

**/

 

class Myclass{

         public function __construct(){

                   $a=func_get_args();

                   $i=func_num_args();

                   if(method_exists($this,$f='__construct'.$i)){//检查类方法是否存在

                            call_user_func_array(array($this,$f),$a);// 返回一个用户函数与特定的参数数组

                   }                

         }

         function __construct1($a1){

                    echo('__construct with 1 param called: '.$a1.PHP_EOL);

                   }

         function __construct2($a1,$a2){

                            echo('__construct with 2 params called: '.$a1.','.$a2.PHP_EOL);

                   }

         function __construct3($a1,$a2,$a3){

                   echo('__construct with 3 params called:'.$a1.','.$a2.','.$a3.PHP_EOL);

         }

}

$a=new Myclass('aa');//__construct with 1 param called: aa

$a=new Myclass('aa','bb');//__construct with 2 params called: aa,bb

$a=new Myclass('aa','bb','cc');//__construct with 3 params called:aa,bb,cc
登录后复制

  

php析构函数

php5引入了析构函数的概念,析构函数会在到对象的所有的引用都被删除或者当对象被显示销毁时执行

注意:

和析构函数一样,父类的析构函数不会被引擎暗中调用,要执行父类的析构函数,必须在子类的析构函数体中显示调用parent::__destruct()

析构函数即使在使用exit()终止脚本运行时也会被调用,在析构函数中调用exit()将会中止其余关闭操作的运行

  1. 试图在析构函数(在脚本终止时被调用)中抛出一个异常会导致致命错误
  2. 析构函数在脚本关闭时调用,此时所有的HTTP头信息已经发出。 脚本关闭时的工作目录有可能和在SAPI(如apache)中时不一样
PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号