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 相关文章推荐
对javascript和select部件的结合运用
Oct 09 PHP
php中文字符截取防乱码
Mar 28 PHP
浅析SVN常见问题及解决方法
Jun 21 PHP
php使用qr生成二维码的示例分享
Jan 20 PHP
PHP面向对象精要总结
Nov 07 PHP
php将图片文件转换成二进制输出的方法
Jun 10 PHP
完美解决phpdoc导出文档中@package的warning及Error的错误
May 17 PHP
php arsort 数组降序排序详细介绍
Nov 17 PHP
thinkPHP实现多字段模糊匹配查询的方法
Dec 01 PHP
YII分模块加载路由的实现方法
Oct 01 PHP
php开发最强大的IDE编辑的phpstorm 2020.2配置Xdebug调试的详细教程
Aug 17 PHP
PHP 图片处理
Sep 16 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
php 删除无限级目录与文件代码共享
2008/11/22 PHP
PHP安装BCMath扩展的方法
2019/02/13 PHP
ajax 文件上传应用简单实现
2009/03/03 Javascript
JS重要知识点小结
2011/11/06 Javascript
node.js中的buffer.Buffer.byteLength方法使用说明
2014/12/10 Javascript
jQuery解决input超多的表单提交
2015/08/10 Javascript
PHP+MySQL+jQuery随意拖动层并即时保存拖动位置实例讲解
2015/10/09 Javascript
基于jQuery和CSS3制作数字时钟附源码下载(jquery篇)
2015/11/24 Javascript
jQuery+CSS实现一个侧滑导航菜单代码
2016/05/09 Javascript
JavaScript中的Object对象学习教程
2016/05/20 Javascript
jQuery基于函数重载实现自定义Alert函数样式的方法
2016/07/27 Javascript
AngularJS入门教程之静态模板详解
2016/08/18 Javascript
如何用js判断dom是否有存在某class的值
2017/02/13 Javascript
JavaScript无缝滚动效果的实例代码
2017/03/27 Javascript
Node.JS利用PhantomJs抓取网页入门教程
2017/05/19 Javascript
[01:36]DOTA2完美大师赛趣味视频之与队友相处的十万个技巧
2017/11/19 DOTA
python用列表生成式写嵌套循环的方法
2018/11/08 Python
在Python 不同级目录之间模块的调用方法
2019/01/19 Python
将python图片转为二进制文本的实例
2019/01/24 Python
python3+PyQt5 自定义窗口部件--使用窗口部件样式表的方法
2019/06/26 Python
使用python-pptx包批量修改ppt格式的实现
2020/02/14 Python
python3.9.1环境安装的方法(图文)
2021/02/02 Python
彻底弄明白CSS3的Media Queries(跨平台设计)
2010/07/27 HTML / CSS
CSS3 Media Queries详细介绍和使用实例
2014/05/08 HTML / CSS
html5读取本地文件示例代码
2014/04/22 HTML / CSS
Canvas制作的下雨动画的示例
2018/03/06 HTML / CSS
英国家庭和商业健身器材购物网站:Fitness Options
2018/07/05 全球购物
KIKO MILANO西班牙官网:意大利领先的化妆品和护肤品品牌
2019/05/03 全球购物
shell变量的作用空间是什么
2013/08/17 面试题
五好关工委申报材料
2014/05/31 职场文书
公司财务人员岗位职责
2015/04/14 职场文书
学习商务礼仪心得体会
2016/01/22 职场文书
七年级数学教学反思
2016/02/17 职场文书
资深HR教你写好简历中的自我评价
2019/05/07 职场文书
Python基础之元类详解
2021/04/29 Python
react使用antd的上传组件实现文件表单一起提交功能(完整代码)
2021/06/29 Javascript