一、构造方法
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的连接
对象何时销毁:网页执行完毕时,对象会自动销毁
三、实例:在线人数统计
//创建一个学生类
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
网友评论