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 相关文章推荐
用phpmyadmin更改mysql5.0登录密码
Mar 25 PHP
PHP+ACCESS 文章管理程序代码
Jun 21 PHP
浅析PHP substr,mb_substr以及mb_strcut的区别和用法
Jun 21 PHP
php统计文章排行示例
Mar 04 PHP
跟我学Laravel之视图 &amp; Response
Oct 15 PHP
分享微信扫码支付开发遇到问题及解决方案-附Ecshop微信支付插件
Aug 23 PHP
PHP版本常用的排序算法汇总
Dec 20 PHP
php微信高级接口调用方法(自定义菜单接口、客服接口、二维码)
Nov 28 PHP
PHPMailer使用QQ邮箱实现邮件发送功能
Aug 18 PHP
PHP crypt()函数的用法讲解
Feb 15 PHP
PHP工厂模式、单例模式与注册树模式实例详解
Jun 03 PHP
PHP7新特性
Mar 09 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中cookie的使用方法
2014/03/29 PHP
以实例全面讲解PHP中多进程编程的相关函数的使用
2015/08/18 PHP
php 截取utf-8格式的字符串实例代码
2016/10/30 PHP
使用PHPStorm+XDebug搭建单步调试环境
2017/11/19 PHP
让innerHTML的脚本也可以运行起来
2006/07/01 Javascript
Array.prototype 的泛型应用分析
2010/04/30 Javascript
基于jQuery的输入框在光标位置插入内容, 并选中
2011/10/29 Javascript
js操作iframe的一些方法介绍
2013/06/25 Javascript
解决json日期格式问题的3种方法
2014/02/02 Javascript
JQuery判断radio(单选框)是否选中和获取选中值方法总结
2015/04/15 Javascript
js中日期的加减法
2015/05/06 Javascript
JavaScript的jQuery库插件的简要开发指南
2015/08/12 Javascript
javascript中offset、client、scroll的属性总结
2015/08/13 Javascript
全面了解构造函数继承关键apply call
2016/07/26 Javascript
javascript 开发之百度地图使用到的js函数整理
2017/05/19 Javascript
vue 组件间的通信之子组件向父组件传值的方式
2020/07/29 Javascript
Vue.extend 登录注册模态框的实现
2020/12/29 Vue.js
Python找出9个连续的空闲端口
2016/02/01 Python
Python首次安装后运行报错(0xc000007b)的解决方法
2016/10/18 Python
Python SQL查询并生成json文件操作示例
2018/08/17 Python
python selenium爬取斗鱼所有直播房间信息过程详解
2019/08/09 Python
Python 实现将数组/矩阵转换成Image类
2020/01/09 Python
css3实现信纸/同学录效果的示例代码
2018/12/11 HTML / CSS
娇韵诗俄罗斯官方网站:Clarins俄罗斯
2020/10/03 全球购物
中科软测试工程师面试题
2012/06/16 面试题
信息部岗位职责
2013/11/12 职场文书
给男朋友的道歉信
2014/01/12 职场文书
韩国商务邀请函
2014/01/14 职场文书
元旦联欢会主持词
2014/03/26 职场文书
社区党的群众路线教育实践活动领导班子对照检查材料
2014/09/25 职场文书
2014国庆节演讲稿:祖国在我心中(400字)
2014/09/25 职场文书
商务宴请邀请函范文
2015/02/02 职场文书
2015年世界无烟日活动总结
2015/02/10 职场文书
反邪教观后感
2015/06/11 职场文书
保险公司岗前培训工作总结
2015/10/24 职场文书
《英雄联盟》2022日蚀、月蚀皮肤演示 黑潮亚索曝光
2022/04/13 其他游戏