最新公告
  • 欢迎您光临码农资源网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!加入我们
  • php中构造函数与析构函数详解

    在php中构造函数与析构函数都是使用在类中的,下面我来给大家详细介绍关于在php类中使用构造函数与析构函数的方法,有需要了解的朋友可参考参考.

    析构函数

    php析构函数的作用刚好和构造函数相反,构造函数是在对象实例化时自动执行,而析构函数在对象被销毁时自动执行.

    默认情况下,php仅释放对象属性所占用的内存,并不销毁对象相关的资源,而利用析构函数在使用一个对象之后执行代码来清除内存,并将对象从内存中销毁.析构函数__destruct()结构形式如下:

    实例代码如下:

    function __destruct(){ 
        /* class initialization code */ 
    } 

    析构函数是由系统自动调用,不能带参数.

    实例代码如下:

    <?php  
     class des{ 
      function __destruct(){ 
       echo "运行结束,执行析构函数"; 
      } 
     } 
     $p=new des(); /* 实例化类 */ 
     $sum=0; 
     for($i=0;$i<10;$i++){ 
      $sum=$sum+$i; 
      echo $sum ."<br>"; 
     } 
    ?> 

    析构函数的调用

    php如何调用析构函数?当php脚本不再与对象相关时将调用析构函数.如果要明确地销毁一个对象调用析构函数,可以给指向对象的变量不分配任何值,通常将变量赋值为NULL或者用unset()函数.

    实例代码如下:

    <?php  
     class des{ 
      function __destruct(){ 
       echo "对象被销毁,执行析构函数<br>"; 
      } 
     } 
     $p=new des(); /* 实例化类 */ 
     echo "程序开始<br>"; 
     unset($p); /* 销毁变量$p */ 
     echo "程序结束"; 
    ?> 

    构造函数

    我们在使用类的过程中,有时需要立即为实例化对象的多个字段父子,如果通过手工,会带来很多不可预测的问题,而如果在对象创建过程中自动执行,则会带来很多方便.

    php构造函数作用就是当类被实例化时,会自动执行的函数,又称为构造函数.构造函数的声明和其它函数一样,知识构造函数的名称是“__construct”固定的名称,其结构形式如下:

    实例代码如下:

    function __construct([argument1,argument2,argument3]){ 
        /* class initialization code */ 
    } 

    实例代码如下:

    <?php  
     class user{ 
      public $name; 
      private $password; 
      private $login; 
      public function __construct($name,$password){ 
       $this->name=$name; 
       $this->password=$password; 
       $this->login=time(); 
      } 
      function getlogin(){ 
       return(date('M d,Y',$this->login)); 
      } 
     } 
     $user=new user('Marry','888888'); 
     echo "用户名: ". $user->name. "<br>"; 
     print("访问时间". $user->getlogin()); 
    ?> 

    调用父类构造函数

    构造函数可以被子类调用,php调用父类构造函数时必须使用parent关键字,否则不会自动调用.

    实例代码如下:

    <?php  
     class task1{ 
      public function __construct(){ 
       echo "today is Monday". "<br>"; 
      } 
     } 
     class task2 extends task1{ 
      function __construct(){ 
       parent::__construct(); /* 调用父类构造函数 */ 
       echo "I must work!"; 
      } 
     } 
     new task2; 
    ?> 
    想要了解更多内容,请持续关注码农资源网,一起探索发现编程世界的无限可能!
    本站部分资源来源于网络,仅限用于学习和研究目的,请勿用于其他用途。
    如有侵权请发送邮件至1943759704@qq.com删除

    码农资源网 » php中构造函数与析构函数详解
    • 7会员总数(位)
    • 25846资源总数(个)
    • 0本周发布(个)
    • 0 今日发布(个)
    • 293稳定运行(天)

    提供最优质的资源集合

    立即查看 了解详情