构造方法与析构方法是对象中的两个特殊方法,它们都与对象的生命周期有关。构造方法时对象创建完成后第一个被对象自动调用的方法,这是我们在对象中使用构造方法的原因。而析构方法时对象在销毁之前最后一个被对象自动调用的方法,这也是我们在对象中使用析构方法的原因。所以通常使用构造方法完成一些对象的初始化工作,使用析构方法完成一些对象在销毁前的清理工作。
构造方法:
①一个类只能有一个构造方法!
②构造方法没有返回值。
③构造方法的作用是对新对象的初始化,但并不能创造对象本来、在创建构造方法后,系统将自动调用构造方法!

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php 
    class person{ 
         public $name
         public $age
          //构造方法 (没有返回值,直接调用!) 
         public function __construct($name,$age){ 
             //this 是一个引用对象本身,相对于当前对象的地址! 
             $this->age=$age
             $this->name=$name
             echo "这是一个构造方法 <br/>"
         
         //构造方法2:(php4中方法) 
         public function person(){ 
 
             echo"OK<br/>"
         
     
         //两种构造方法同时存在时,优先输出方法1; 
         $po=new person("aaa",20); 
         echo $po->name.$po->age; 
?>

析构方法:
析构方法主要作用是用来释放资源!如释放数据库的链接,或图片链接或销毁某个对象等等,主要特点如下:
①系统自动调用。
②主要用于释放资源
③析构函数调用的顺序,先创建的对象,先被销毁(最先创建的会被压栈)。
④当一个对象成为垃圾对象的时候,该析构函数会被立即调用。进程结束后退出! 所谓垃圾对象就是指没有任务变量再引用它了,一旦一个对象成为垃圾对象,析构函数会被立即调用!

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php 
    class person{ 
         public $name
         public $age
          //构造方法 (没有返回值,直接调用!) 
         public function __construct($name,$age){ 
             $this->age=$age
             $this->name=$name
             echo "这是一个构造方法 <br/>"
         
         //析构方法 
         public function __destruct(){ 
             echo $this->name."销毁资源"
         
     
         //两种构造方法同时存在时,优先输出方法1; 
         $po=new person("aaaa",20); 
         $po1=new person("bbbb",20); 
         $po2=new person("cccc",20); 
 
?>

当在$po=new person(“aaaa”,20);后面增加 $po=null;

 

>> 本文固定链接: http://php.ncong.com/php_course/oop/duixiangfangfa.html

>> 转载请注明: 恩聪php 2014年07月23日 于 恩聪PHP学习教程 发表

PHP面向对象的构造方法与析构方法的更多相关文章

  1. 浅谈PHP面向对象编程(三、构造方法和析构方法)

    3.0 构造方法和析构方法 从我之前的博客可以发现,实例化一个类的对象后,如果要为这个对象的属性赋值,需要直接访问该对象的属性.如果想要在实例化对象的同时就为这个对象的属性进行赋值,则可以通过构造方法 ...

  2. php课程 12-38 php的类的构造方法和析构方法怎么写

    php课程 12-38 php的类的构造方法和析构方法怎么写 一.总结 一句话总结:a.__construct(参数){},__destruct(){},b.如果类中的一个方法和类名相同,则该方法为构 ...

  3. 009-对象—— 构造方法__construct析构方法__destruct使用方法 PHP重写与重载

    <?php /**构造方法__construct析构方法__destruct使用方法 PHP重写与重载 */ //构造方法:当实例化对象时,自动运行的方法 /*class channel{ fu ...

  4. PHP其它常用函数;<<<面向对象(OPP)的三大特性:封装、继承、加态:>>> <----面试题 ;构造方法、析构方法,魔术方法、set、get方法;静态;抽象类;接口

    PHP其它常用函数:     赋值:$r->name = "元素";      取值: echo $r->name;  count()   计算数组中的元素数目或对象中 ...

  5. php构造方法与析构方法

    1. 构造方法 <?php //构造方法 __construct() 是在实例化对象时被自动调用 //用途:可以用于初始化程序(可以给成员属性赋值,也可以调用成员方法) //语法:[修饰符] f ...

  6. 【PHP构造方法和析构方法的使用】

    构造方法:__construct,析构方法:__destruct 代码示例: <?php class Person { public $name; public $age; public fun ...

  7. Java构造方法与析构方法实例剖析

    Java构造方法 类有一个特殊的成员方法叫作构造方法,它的作用是创建对象并初始化成员变量.在创建对象时,会自动调用类的构造方法. 构造方法定义规则:Java 中的构造方法必须与该类具有相同的名字,并且 ...

  8. PHP中的构造方法和析构方法

    构造方法(_ _construct): 构造方法,是一个特殊的方法: 1,名字是固定的:_ _construct: 2,该方法通常都不要我们自己调用,而是在new一个对象的时候会自动调用. 3,该方法 ...

  9. PHP类(二)-类的构造方法和析构方法

    构造方法 构造方法是对象创建完成后第一个被对象自动调用的方法,用来完成对象的初始化 在每个类中都会有一个构造方法,如果没有声明的话,类中会存在一个没有参数列表并且内容为空的构造方法.如果声明的话,默认 ...

随机推荐

  1. cf C. Maze

    http://codeforces.com/problemset/problem/378/C #include <cstdio> #include <cstring> #inc ...

  2. ZOJ 2760 How Many Shortest Path

    题目大意:给定一个带权有向图G=(V, E)和源点s.汇点t,问s-t边不相交最短路最多有几条.(1 <= N <= 100) 题解:从源点汇点各跑一次Dij,然后对于每一条边(u,v)如 ...

  3. AC自动机修正

    #include<iostream> #include<cstdio> #include<cmath> #include<algorithm> #inc ...

  4. Ubuntu 14.04 64位安装Android Studio 和 genymotion (上)

    先说下,Ubuntu 上安装Android Studio真是一路坑阿,一路坑阿,加上天  朝 防火墙挡着,折腾了快一天才弄好阿 找了n多教程,md不是抄的就是转的,而且都没说清楚具体咋装阿,一个图一个 ...

  5. hadoop2.2.0伪分布模式64位安装

    hadoop2.2.0伪分布模式64位安装用到的软件:jdk-6u45-linux-x64.bin,hadoop-2.2.0.x86_64.tar.gz 修改主机名vim /etc/sysconfig ...

  6. maven 命令小记

    mvn help:system mvn clean compile mvn clean test                            测试 mvn clean package     ...

  7. Android Paint之 setXfermode PorterDuffXfermode 讲解

    setXfermodePorterDuffXfermode图层混合模式android图像混合模式AvoidXfermode 尊重原创,欢迎转载,转载请注明: FROM  GA_studio   htt ...

  8. Boost库安装与使用

    Boost 库非常不错,所以我今天就安了它一下下. Boost 库不是 C++ 标准库的一部分(据说在下一版本号的 C++ 标准会採纳它),但它有一些标准库所没有的非常实用的一些功能,比方我非常须要的 ...

  9. NSData的一些用法

    //NSData遵循NSCopying NSCoding协议,它提供面向对象的数组存储为字节 //适用与读写文件,而读写文件的时候需要一个缓冲区,而NSDate就提供了这么一个缓存区 //定义一个ch ...

  10. How to get multi-touch working(Linux and Andriod)

    1.在hid-ids.h中加入vid pid           2.在hid-multitouch..c->mt_devices[] 中加入          {                ...