最模板 - 外贸网站建设,外贸网站模板

最模板

当前位置: 首页 > 建站教程 > php教程 >

php中构造函数与析构函数详解

时间:2014-06-09 16:40来源: 作者: 点击:
在php中构造函数与析构函数都是使用在类中的,下面我来给大家详细介绍关于在php类中使用构造函数与析构函数的方法,有需要了解的朋友可参考参考. 析构函数 php析构函数的作用刚好和构造函数

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

析构函数

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

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

实例代码如下:

  1. function __destruct(){ 
  2.     /* class initialization code */ 
  3. }  

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

实例代码如下:

  1. <?php  
  2.  class des{ 
  3.   function __destruct(){ 
  4.    echo "运行结束,执行析构函数"
  5.   } 
  6.  } 
  7.  $p=new des(); /* 实例化类 */ 
  8.  $sum=0; 
  9.  for($i=0;$i<10;$i++){ 
  10.   $sum=$sum+$i
  11.   echo $sum ."<br>"
  12.  } 
  13. ?> 

析构函数的调用

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

实例代码如下:

  1. <?php  
  2.  class des{ 
  3.   function __destruct(){ 
  4.    echo "对象被销毁,执行析构函数<br>"
  5.   } 
  6.  } 
  7.  $p=new des(); /* 实例化类 */ 
  8.  echo "程序开始<br>"
  9.  unset($p); /* 销毁变量$p */ 
  10.  echo "程序结束"
  11. ?> 

构造函数

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

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

实例代码如下:

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

实例代码如下:

  1. <?php  
  2.  class user{ 
  3.   public $name
  4.   private $password
  5.   private $login
  6.   public function __construct($name,$password){ 
  7.    $this->name=$name
  8.    $this->password=$password
  9.    $this->login=time(); 
  10.   } 
  11.   function getlogin(){ 
  12.    return(date('M d,Y',$this->login)); 
  13.   } 
  14.  } 
  15.  $user=new user('Marry','888888'); 
  16.  echo "用户名: "$user->name. "<br>"
  17.  print("访问时间"$user->getlogin()); 
  18. ?> 

调用父类构造函数

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

实例代码如下:

  1. <?php  
  2.  class task1{ 
  3.   public function __construct(){ 
  4.    echo "today is Monday""<br>"
  5.   } 
  6.  } 
  7.  class task2 extends task1{ 
  8.   function __construct(){ 
  9.    parent::__construct(); /* 调用父类构造函数 */ 
  10.    echo "I must work!"
  11.   } 
  12.  } 
  13.  new task2; 
  14. ?> 
(责任编辑:admin)
------分隔线----------------------------
栏目列表
推荐内容
  • php strstr、stristr、strpos函数比较

    在字符查找时在php中为我们提供了三个函数 strstr、stristr、strpos,它们三个的用法有点区别下面...

  • Ajax用户注册验证

    Ajax用户注册验证 本文章是一款完整的Ajax用户注册验证实例代码,利用了ajax php实现在用户输入...

  • php 赋值运算符

    基本的赋值运算符是=,一开始可能会以为它是等于,其实不是的,它实际上意味着把右边表达式的...

  • php 跳出foreach / for循环实现程序

    现在在php跳出循环方法有几种,一种是使用goto另一种是使用php新特性goto命令哦,下面我来一下介...

  • 超简单PHP生成二维码实例

    PHP生成二维码的方式有多种,可以利用google开放的API,可以利用php QR Code类库生成,本文着重介绍使...

  • 三款php多文件上传实例代码

    在php开发应用中经常会碰到文件上传,有时也会碰到要多文件上传,下面我们就来看看我提供的三...