`
ythzjk
  • 浏览: 74420 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
社区版块
存档分类
最新评论

php5构造函数与析构函数

    博客分类:
  • php
PHP 
阅读更多

文章分类: Php | 没有评论 »
发布日期:

构造方法与析构方法
大多数类都有一种称为构造函数的特殊方法。当创建一个对象时,它将自动调用构造函数,也就是使用new这个关键字来实例化对象的时候自动调用构造方法。
构造函数的声明与其它操作的声明一样,只是其名称必须是__construct( )。这是PHP5中的变化,以前的版本中,构造函数的名称必须与类名相同,这种在PHP5中仍然可以用,但现在以经很少有人用了,这样做的好处是可以使构造函数独立于类名,当类名发生改变时不需要改相应的构造函数名称了。为了向下兼容,如果一个类中没有名为__construct( )的方法,PHP将搜索一个php4中的写
法,与类名相同名的构造方法。
格式:function __construct ( [参数] ) { … … }
在一个类中只能声明一个构造方法,而是只有在每次创建对象的时候都会去调用一次构造方法,不能主动的调用这个方法,所以通常用它执行一些有用的初始化任务。比如对成属性在创建对象的时候赋初值。

//创建一个人类

  1. class Person   
  2. {   
  3. //下面是人的成员属性   
  4. var $name;       //人的名子   
  5. var $sex;        //人的性别   
  6. var $age;        //人的年龄   
  7. //定义一个构造方法参数为姓名$name、性别$sex和年龄$age   
  8. function __construct($name$sex$age)   
  9. {   
  10. //通过构造方法传进来的$name给成员属性$this->name赋初使值   
  11. $this->name=$name;   
  12. //通过构造方法传进来的$sex给成员属性$this->sex赋初使值   
  13. $this->sex=$sex;   
  14. //通过构造方法传进来的$age给成员属性$this->age赋初使值   
  15. $this->age=$age;   
  16. }   
  17. //这个人的说话方法   
  18. function say()   
  19. {   
  20. echo "我的名子叫:".$this->name." 性别:".$this->sex." 我的年龄是:".$this->age."<br>";   
  21. }   
  22. }   
  23. //通过构造方法创建3个对象$p1、p2、$p3,分别传入三个不同的实参为姓名、性别和年龄   
  24. $p1=new Person("张三","男", 20);   
  25. $p2=new Person("李四","女", 30);   
  26. $p3=new Person("王五","男", 40);   
  27. //下面访问$p1对象中的说话方法   
  28. $p1->say();   
  29. //下面访问$p2对象中的说话方法   
  30. $p2->say();   
  31. //下面访问$p3对象中的说话方法   
  32. $p3->say();   
  33.   
  34. 输出结果为:   
  35. 我的名子叫:张三性别:男我的年龄是:20   
  36. 我的名子叫:李四性别:女我的年龄是:30  
class Person
{
//下面是人的成员属性
var $name;       //人的名子
var $sex;        //人的性别
var $age;        //人的年龄
//定义一个构造方法参数为姓名$name、性别$sex和年龄$age
function __construct($name, $sex, $age)
{
//通过构造方法传进来的$name给成员属性$this->name赋初使值
$this->name=$name;
//通过构造方法传进来的$sex给成员属性$this->sex赋初使值
$this->sex=$sex;
//通过构造方法传进来的$age给成员属性$this->age赋初使值
$this->age=$age;
}
//这个人的说话方法
function say()
{
echo "我的名子叫:".$this->name." 性别:".$this->sex." 我的年龄是:".$this->age."<br>";
}
}
//通过构造方法创建3个对象$p1、p2、$p3,分别传入三个不同的实参为姓名、性别和年龄
$p1=new Person("张三","男", 20);
$p2=new Person("李四","女", 30);
$p3=new Person("王五","男", 40);
//下面访问$p1对象中的说话方法
$p1->say();
//下面访问$p2对象中的说话方法
$p2->say();
//下面访问$p3对象中的说话方法
$p3->say();

输出结果为:
我的名子叫:张三性别:男我的年龄是:20
我的名子叫:李四性别:女我的年龄是:30

我的名子叫:王五性别:男我的年龄是:40

析构函数:
与构造函数相对的就是析构函数。析构函数是PHP5新添加的内容,在PHP4中没有析构函数。析构函数允许在销毁一个类之前执行的一些操作或完成一些功能,比如说关闭文件,释放结果集等,析构函数会在到某个对象的所有引用都被删除或者当对象被显式销毁时执行,也就是对象在内存中被销毁前调用析构函数。与构造函数的名称类似,一个类的析构函数名称必须是__destruct( )。析构函数不能带有任何参数。
 格式:function __destruct ( ) { … … }

//创建一个人类

  1. class Person   
  2. {   
  3. //下面是人的成员属性   
  4. var $name//人的名子   
  5. var $sex//人的性别   
  6. var $age//人的年龄   
  7. //定义一个构造方法参数为姓名$name、性别$sex和年龄$age   
  8. function __construct($name$sex$age)   
  9. {   
  10. //通过构造方法传进来的$name给成员属性$this->name赋初使值   
  11. $this->name=$name;   
  12. //通过构造方法传进来的$sex给成员属性$this->sex赋初使值   
  13. $this->sex=$sex;   
  14. //通过构造方法传进来的$age给成员属性$this->age赋初使值   
  15. $this->age=$age;   
  16. }   
  17. //这个人的说话方法   
  18. function say()   
  19. {   
  20. echo "我的名子叫:".$this->name." 性别:".$this->sex." 我的年龄是:".$this->age."<br>";   
  21. }   
  22. //这是一个析构函数,在对象销毁前调用   
  23. function __destruct()   
  24. {   
  25. echo "再见".$this->name."<br>";   
  26. }   
  27. //通过构造方法创建3个对象$p1、p2、$p3,分别传入三个不同的实参为姓名、性别和年龄   
  28. $p1=new Person("张三","男", 20);   
  29. $p2=new Person("李四","女", 30);   
  30. $p3=new Person("王五","男", 40);   
  31. //下面访问$p1对象中的说话方法   
  32. $p1->say();   
  33. //下面访问$p2对象中的说话方法   
  34. $p2->say();   
  35. //下面访问$p3对象中的说话方法   
  36. $p3->say();  
class Person
{
//下面是人的成员属性
var $name; //人的名子
var $sex; //人的性别
var $age; //人的年龄
//定义一个构造方法参数为姓名$name、性别$sex和年龄$age
function __construct($name, $sex, $age)
{
//通过构造方法传进来的$name给成员属性$this->name赋初使值
$this->name=$name;
//通过构造方法传进来的$sex给成员属性$this->sex赋初使值
$this->sex=$sex;
//通过构造方法传进来的$age给成员属性$this->age赋初使值
$this->age=$age;
}
//这个人的说话方法
function say()
{
echo "我的名子叫:".$this->name." 性别:".$this->sex." 我的年龄是:".$this->age."<br>";
}
//这是一个析构函数,在对象销毁前调用
function __destruct()
{
echo "再见".$this->name."<br>";
}
//通过构造方法创建3个对象$p1、p2、$p3,分别传入三个不同的实参为姓名、性别和年龄
$p1=new Person("张三","男", 20);
$p2=new Person("李四","女", 30);
$p3=new Person("王五","男", 40);
//下面访问$p1对象中的说话方法
$p1->say();
//下面访问$p2对象中的说话方法
$p2->say();
//下面访问$p3对象中的说话方法
$p3->say();

输出结果为:
我的名子叫:张三性别:男我的年龄是:20
我的名子叫:李四性别:女我的年龄是:30
我的名子叫:王五性别:男我的年龄是:40
再见王五
再见李四
再见张三

分享到:
评论

相关推荐

    PHP面构造函数,析构函数

    整理关于php面构造函数,析构函数的基础知识

    PHP中文教程:PHP面向对象语法(构造函数、析构函数、引用)

    PHP面向对象语法 讲解了构造函数 析构函数 引用及引用传递

    PHP构造函数与析构函数用法示例

    主要介绍了PHP构造函数与析构函数用法,简单讲述php中构造函数与析构函数的定义与使用方法,并结合实例形式演示了构造函数与析构函数的执行顺序,需要的朋友可以参考下

    php构造函数与析构函数

    本文章向大家介绍php构造函数与析构函数。 php构造函数 1.是对象创建完成后,“第一个”“自动调用”的方法 2.构造方法的定义,方法名是一个固定的, 在php4中:和类名相同的方法就是构造方法 在php5中:构造方法...

    C++语法详解之封装、构造函数、析构函数

    大家先了解下什么是构造函数,什么是析构函数,作用是什么? 构造函数(方法)是对象创建完成后第一个被对象自动调用的方法。它存在于每个声明的类中,是一个特殊的成员方法。作用是执行一些初始化的任务。Php中使用...

    PHPweb2.0网站开发高级开发技术—PHP面向对象语法(构造函数、析构函数、引用)

    上海交大昂立学趣CTO学院内部高级课件,是学习PHP非常不错的教程。

    PHP析构函数destruct与垃圾回收机制的讲解

    PHP5中提供的析构函数是__destruct,其与构造方法__construct相对应。 垃圾回收——GC(Garbage Collector) 在PHP中,没有任何变量指向这个对象时,这个对象就成为垃圾,PHP会将其在内存中销毁。 这是PHP的GC(Garbage...

    php析构函数的简单使用说明

    相信很多初学者学习php面向对象时会接触两个函数,构造函数与析构函数。构造函数似乎用的更多,析构函数用的较少(相对初学者有限编程经验而言,笔者也是如此。)在功能上,构造函数在创建对象时调用,析构函数在...

    php基础知识:类与对象(3) 构造函数和析构函数

    构造函数 PHP 5 允行开发者在一个类中定义一个方法作为构造函数。具有构造函数的类会在每次创建对象时先调用此方法,所以非常适合在使用对象之前做一些初始化工作。 注意: 如果子类中定义了构造函数则不会暗中...

    PHP面向对象详解

    详细介绍了php面向对象的基础理念,封装,继承,构造方法,构造函数以及析构函数

    PHP中构造函数和析构函数解析

    PHP 5 允行开发者在一个类中定义一个方法作为构造函数。具有构造函数的类会在每次创建新对象时先调用此方法,所以非常适合在使用对象之前做一些初始化工作。 Note: 如果子类中定义了构造函数则不会隐式调用其父类的...

    php构造函数实例讲解

    当函数与类同名时,这个函数将成为构造函数。如果一个类没有构造函数,则调用基类的构造函数,如果有的话,则调用自己的构造函数如a.php一个class a类:复制代码 代码如下:&lt;?phpclass a{ function __construct()...

    2010年最新PHP类的精缩归纳

    适合新手的 ...知识点:在PHP4中也提供了构造函数,但使用的是与类同名的类方法,在PHP5仍能兼容这种做法,当一个类中没有包含__construct时,会查找与类同名的方法,如果找到,就认为是构造函数,如下:

    PHP学习手册(PHP知识大全)

     在 PHP4 中,当函数与对象同名时,这个函数将成为该对象的构造函数,并且在 PHP4 中没有析构函数的概念。  在 PHP5 中,构造函数被统一命名为 __construct,并且引入了析构函数的概念,被统一命名为 __destruct...

    PHP100视频教程 18:PHP面向对象开发的学习(二).rar

    软件介绍 1、创建一个和多个对象 2、对象中的$this关键字 我们可以理解为$this是在对象中特殊的一种使用构造函数和变量的方法 ... 能够在对象释放时自动被调用的方法被称为析构函数  规则:后进先出

    PHP入门基础知识.doc

    php基础知识,包括:语法、打印、注释、数组、超级全局变量、魔术常量、命名空间、php面向对象——类、构造函数、析构函数、继承、重写、访问控制、接口

Global site tag (gtag.js) - Google Analytics