加入收藏 | 设为首页 | 会员中心 | 我要投稿 我爱制作网_潮州站长网 (http://www.0768zz.com/)- 物联安全、建站、操作系统、云计算、数据迁移!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php中构造函数与析构函数介绍

发布时间:2022-07-27 12:13:35 所属栏目:PHP教程 来源:互联网
导读:在php中构造函数与析构函数都是使用在类中的,下面我来给大家详细介绍关于在php类中使用构造函数与析构函数的方法,有需要了解的朋友可参考参考. 析构函数 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;
  ?> 

(编辑:我爱制作网_潮州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读