首页 > 编程 > PHP > 正文

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

2020-03-22 18:27:39
字体:
来源:转载
供稿:网友
  • 这篇文章介绍了PHP的构造方法,析构方法和this关键字,有需要的朋友可以参考一下。

    一、什么是构造方法

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

    修饰符 function __construct()
    {
    //code
    }

    注意:
    1. php5里对两者都支持,如果两种构造方法同时存在的话,优先选择第一种。
    2. 一个类里面默认有一个不带参数为空的构造方法,一旦自定义了一个构造方法,就会覆盖默认的构造方法.
    所以说一个类有且只有一个构造方法.
    3.一个类只能有一个构造方法.(不能重载)
    4.构造方法默认的访问修饰符为html' target='_blank'>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();
    ?>

    结果如下:

    带参数的构造方法

    姓名:李四, 年龄:13

    四、析构方法:
    析构方法是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编程

    郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

  • 发表评论 共有条评论
    用户名: 密码:
    验证码: 匿名发表