PHP的构造方法,析构方法和this关键字详细介绍


Posted in PHP onOctober 22, 2013

一.什么是构造方法
    构造方法是类的一种特殊的方法,它的主要作用是完成对新对象初始化.
    特点:
1.    没有返回值.
2.    在创建一个新的对象时,系统会自动调用该类的构造方法完成对新对角的初始化.
    语法:
    php5:        修饰符 function __construct()

                        {
                            //code

                        }
    php4:        修饰符 function 类名()

                        {
                            //code

                        }
注意:
   1. php5里对两者都支持,如果两种构造方法同时存在的话,优先选择第一种.
   2. 一个类里面默认有一个不带参数为空的构造方法,一旦自定义了一个构造方法,就会覆盖默认的构造方法.

      所以说一个类有且只有一个构造方法.
   3.一个类只能有一个构造方法.(不能重载)
   4.构造方法默认的访问修饰符为public.
二.this关键字
    this代表当前对象.可以理解为:谁调用它,它就代表谁.
    注意事项:
    this不在类定义的使用,只能在类定义的方法中使用.
三.实例

<?php 
    header("Conter-Type:text/html;charset=utf-8"); 
    class Person 
    { 
        public $name;  //成员变量 
        public $age;        // function __construct() 
        //{ 
          //  echo "不带参数的构造方法"; 
        //} 
        function __construct($name,$age) 
        { 
            $this -> name = $name; 
            $this -> age = $age; 
            echo "带参数的构造方法"."<br />"; 
        } 
        //成员方法 
        function view() 
        { 
            //this的引用. 
            echo "姓名:".$this ->name.", 年龄:".$this ->age; 
        } 
    } 
        //new一个新的对象 
    //$p = new Person(); 
    $p2 = new Person("李四",13); 
    $p2 ->view(); 
?>

结果如下:
    带参数的构造方法

<SPAN style="WIDOWS: 2; TEXT-TRANSFORM: none; TEXT-INDENT: 0px; FONT: 14px 微软雅黑; WHITE-SPACE: normal; ORPHANS: 2; LETTER-SPACING: normal; COLOR: #ff00ff; WORD-SPACING: 0px" color="#ff00ff">    姓名:李四, 年龄:13</SPAN>

四:析构方法:
    析构方法是PHP5引入的新概念.主要作用:释放资源(比如:释放数据库链接,图片资源...).
    语法:
    function __destruct(){}
    特点:

    1.析构方法没有返回值.

    2.主要作用是释放资源.并不是销毁对象本身.
    3.在销毁对象前,系统自动调用该类的析构方法.

    4.一个类最多只有一个析构方法.

五:例子:

<?php 
    header("Conter-Type:text/html;charset=utf-8");     class Person 
    { 
        public $name; 
        public $age; 
        //构造方法 
        function __construct($name,$age) 
        { 
            $this ->name = $name; 
            $this ->age = $age;  
        } 
        //析构方法 
        function __destruct() 
        { 
            echo "姓名:".$this->name.", 年龄".$this->age."-->销毁<br />"; 
        } 
    } 
    $p1= new Person("小一",18); 
    $p2= new Person("小二",17); 
?>

结果:
    姓名:小二, 年龄17-->销毁
    姓名:小一, 年龄18-->销毁

分析结论:
    1.析构方法会自动调用.

    2.析构方法调用的顺序是先创建的对象后被销毁.

    3.当一个对象没有引用,被垃圾回收机制确认为垃圾时,调用析构方法.

PHP 相关文章推荐
php中截取字符串支持utf-8
Jan 18 PHP
据说是雅虎的一份PHP面试题附答案
Jan 07 PHP
PHP引用符&amp;的用法详细解析
Aug 22 PHP
PHP程序员基本要求和必备技能
May 09 PHP
ThinkPHP进程计数类Process用法实例详解
Sep 25 PHP
PHP编程快速实现数组去重的方法详解
Jul 22 PHP
PHP新特性之字节码缓存和内置服务器
Aug 11 PHP
Laravel中七个非常有用但很少人知道的Carbon方法
Sep 21 PHP
PHP中PDO事务处理操作示例
May 02 PHP
php实现二叉树中和为某一值的路径方法
Oct 14 PHP
PHP+Ajax实现的检测用户名功能简单示例
Feb 12 PHP
laravel 实现向公共模板中传值 (view composer)
Oct 22 PHP
实用的简单PHP分页集合包括使用方法
Oct 21 #PHP
使用PHP导出Word文档的原理和实例
Oct 21 #PHP
php与java通过socket通信的实现代码
Oct 21 #PHP
PHP与Java进行通信的实现方法
Oct 21 #PHP
php中生成随机密码的自定义函数代码
Oct 21 #PHP
php中读写文件与读写数据库的效率比较分享
Oct 19 #PHP
PHP中include与require使用方法区别详解
Oct 19 #PHP
You might like
中国第一家无线电行
2021/03/01 无线电
PHP的PSR规范中文版
2013/09/28 PHP
php中实现获取随机数组列表的自定义函数
2015/04/02 PHP
php单一接口的实现方法
2015/06/20 PHP
使用POST方式弹出窗口的两种方法示例介绍
2014/01/29 Javascript
jQuery通过扩展实现抖动效果的方法
2015/03/11 Javascript
简单介绍JavaScript的变量和数据类型
2015/06/03 Javascript
js判断浏览器类型及设备(移动页面开发)
2015/07/30 Javascript
jQuery地图map悬停显示省市代码分享
2015/08/20 Javascript
jQuery悬停文字提示框插件jquery.tooltipster.js用法示例【附demo源码下载】
2016/07/19 Javascript
探讨AngularJs中ui.route的简单应用
2016/11/16 Javascript
JavaScript学习笔记--常用的互动方法
2016/12/07 Javascript
JS奇技之利用scroll来监听resize详解
2017/06/15 Javascript
详解vue2.0监听属性的使用心得及搭配计算属性的使用
2018/07/18 Javascript
使用angularjs.foreach时return的问题解决
2018/09/30 Javascript
提升node.js中使用redis的性能遇到的问题及解决方法
2018/10/30 Javascript
JS 自执行函数原理及用法
2019/08/05 Javascript
jQuery - AJAX load() 实例用法详解
2019/08/27 jQuery
Vue3.x源码调试的实现方法
2019/10/13 Javascript
React中获取数据的3种方法及优缺点
2020/02/18 Javascript
vue自定义标签和单页面多路由的实现代码
2020/05/03 Javascript
微信小程序学习总结(三)条件、模板、文件引用实例分析
2020/06/04 Javascript
[56:00]DOTA2上海特级锦标赛主赛事日 - 4 胜者组决赛Secret VS Liquid第一局
2016/03/05 DOTA
[01:21]DOTA2周边文化主题展 神秘商店火热开售
2017/07/30 DOTA
python发布模块的步骤分享
2014/02/21 Python
Python中用sleep()方法操作时间的教程
2015/05/22 Python
Pandas之Fillna填充缺失数据的方法
2019/06/25 Python
Django中reverse反转并且传递参数的方法
2019/08/06 Python
pyhton中__pycache__文件夹的产生与作用详解
2019/11/24 Python
CSS3中的Media Queries学习笔记
2016/05/23 HTML / CSS
jurlique茱莉蔻英国官网:澳洲天然护肤品
2018/08/03 全球购物
分公司经理岗位职责
2013/11/11 职场文书
职专应届生求职信
2013/11/16 职场文书
大学四年个人的自我评价
2014/02/26 职场文书
公司门卫岗位职责
2015/04/13 职场文书
湘江北去观后感
2015/06/15 职场文书