美文网首页
PHP构造方法和析构方法

PHP构造方法和析构方法

作者: 老衲灬 | 来源:发表于2018-07-06 09:42 被阅读5次

    一、构造方法

    1)当使用new关键字创建对象时,第1个自动调用的方法,就是构造方法;
    2)构造方法的名称是固定的:void __construct ([ mixed $args [, $... ]] )
    3)构造方法可以带参数,也可以不带参数;构造方法不是必须的,是可选的;
    4)构造方法的作用:对象初始化。例如:给对象属性赋值、数据库对象初始化(连接、选择数据库)
    5)构造方法一定是成员方法。构造方法的权限可以自己指定。
    6)构造方法一般不需要主动调用,都是自动调用的。
    示例:

    //创建一个学生类
    class Student
    {
        //私有的成员属性:通过公共方法给其赋值
        private $name;
        private $age;
    
        //公共的构造方法:对象初始化
        public function __construct($name1,$age1)
        {
            $this->name = $name1;
            $this->age = $age1;
        }
    
        //公共方法打印学生信息
        public function showInfo()
        {
            echo "{$this->name}的年龄是{$this->age}岁";
        }
    }
    //创建学生类对象
    $obj = new Student("张三",18);
    $obj->showInfo();
    
    结果如下: 图片.png

    二、析构方法

    1)析构方法的名称是固定的:void __destruct ( void )
    2)析构方法不带任何参数;
    3)析构方法的作用:垃圾回收工作,例如:断开到MySQL的连接
    对象何时销毁:网页执行完毕时,对象会自动销毁

    图片.png 图片.png

    三、实例:在线人数统计

    //创建一个学生类
    class Student
    {
        //私有的静态属性,用来保存在线人数
        private static $count = 0;
    
        //公共的构造方法
        public function __construct()
        {
            self::$count++;
        }
    
        //获取在线人数
        public function getCount()
        {
            return self::$count;
        }
    
        //公共的析构方法
        public function __destruct()
        {
            self::$count--;
        }
    }
    //创建多个学生类对象,模拟多个用户登录
    $obj1 = new Student();
    $obj2 = new Student();
    $obj3 = new Student();
    $obj4 = new Student();
    unset($obj3,$obj4);
    $obj5 = new Student();
    echo "当前在线人数:".$obj1->getCount();
    

    结果:当前在线人数:3

    相关文章

      网友评论

          本文标题:PHP构造方法和析构方法

          本文链接:https://www.haomeiwen.com/subject/cwkvuftx.html