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 代码优化的42条建议 推荐
Sep 25 PHP
php中获取远程客户端的真实ip地址的方法
Aug 03 PHP
那些年一起学习的PHP(三)
Mar 22 PHP
完美解决PHP中的Cannot modify header information 问题
Aug 12 PHP
php修改指定文件后缀的方法
Sep 11 PHP
PHP使用header()输出图片缓存实例
Dec 09 PHP
CodeIgniter集成smarty的方法详解
May 26 PHP
php的命名空间与自动加载实现方法
Aug 25 PHP
Yii框架函数简单用法分析
Sep 09 PHP
Laravel 添加多语言提示信息的方法
Sep 29 PHP
laravel框架使用阿里云短信发送消息操作示例
Feb 15 PHP
Swoole源码中如何查询Websocket的连接问题详解
Aug 30 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
DOTA2 6.87版本后新眼位详解攻略
2020/04/20 DOTA
php中修改浏览器的User-Agent来伪装你的浏览器和操作系统
2011/07/29 PHP
实现在同一方法中获取当前方法中新赋值的session值解决方法
2014/06/26 PHP
CakePHP框架Model函数定义方法示例
2017/08/04 PHP
PHP面向对象程序设计继承用法简单示例
2018/12/28 PHP
PHP+swoole+linux实现系统监控和性能优化操作示例
2019/04/15 PHP
微信推送功能实现方式图文详解
2019/07/12 PHP
Thinkphp5.0 框架的请求方式与响应方式分析
2019/10/14 PHP
详解Laravel设置多态关系模型别名的方式
2019/10/17 PHP
js string 转 int 注意的问题小结
2013/08/15 Javascript
使用JQuery快速实现Tab的AJAX动态载入(实例讲解)
2013/12/11 Javascript
js创建一个input数组并绑定click事件的方法
2014/06/12 Javascript
jQuery UI制作选项卡(tabs)
2016/12/13 Javascript
Angular搜索场景中使用rxjs的操作符处理思路
2018/05/30 Javascript
详解vue项目中实现图片裁剪功能
2019/06/07 Javascript
vue3.0中使用postcss-pxtorem的具体方法
2019/11/20 Javascript
Vue组件为什么data必须是一个函数
2020/06/11 Javascript
利用TensorFlow训练简单的二分类神经网络模型的方法
2018/03/05 Python
matlab中实现矩阵删除一行或一列的方法
2018/04/04 Python
pygame游戏之旅 按钮上添加文字的方法
2018/11/21 Python
使用Python函数进行模块化的实现
2019/11/15 Python
python使用pandas抽样训练数据中某个类别实例
2020/02/28 Python
Python图像处理之膨胀与腐蚀的操作
2021/02/07 Python
美国著名的品牌折扣店:Burlington
2017/06/08 全球购物
春秋航空官方网站:Spring Airlines
2017/09/27 全球购物
大学毕业生工作的自我评价
2013/10/01 职场文书
七年级音乐教学反思
2014/01/26 职场文书
商场中秋节活动方案
2014/02/07 职场文书
微笑服务演讲稿
2014/05/13 职场文书
会计专业毕业生求职信
2014/07/04 职场文书
师德标兵先进事迹材料
2014/12/19 职场文书
公司趣味运动会开幕词
2016/03/04 职场文书
python将图片转为矢量图的方法步骤
2021/03/30 Python
pygame面向对象的飞行小鸟实现(Flappy bird)
2021/04/01 Python
Python机器学习应用之基于线性判别模型的分类篇详解
2022/01/18 Python
SpringBoot全局异常处理方案分享
2022/05/25 Java/Android