PHP构造方法和析构方法

一、构造方法

1)当使用new关键字创建对象时,第1个自动调用的方法,就是构造方法;
2)构造方法的名称是固定的:void __construct ([ mixed args[,args [,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
图片.png

二、析构方法

1)析构方法的名称是固定的:void __destruct ( void )
2)析构方法不带任何参数;
3)析构方法的作用:垃圾回收工作,例如:断开到MySQL的连接

对象何时销毁:网页执行完毕时,对象会自动销毁
图片.png
图片.png
图片.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

猜你喜欢

转载自blog.csdn.net/csdn_heshangzhou/article/details/80936229
今日推荐