实例化一个类的对象后,如果要为这个对象的属性赋值,需要直接访问改对象的属性。如果想要在实例化对象的同时就为这个对象的属性进行赋值,则可以通过构造方法来实现。
构造方法是累的一个特殊成员,它会在类实例化对象是自动调用,用于对类中的成员进行初始化。与构造方法对应的是析构方法,它在对象销毁之前被调用,用于完成清理工作。
在每个类中,都有一个构造方法,在创建对象时会被自动调用,如果在类中没有显式的声明它,PHP会自动生成一个没有参数,且没有任何操作的默认构造方法。在类中显式声明构造方法时默认构造方法将不存在。声明构造方法和声明成员方法类似,其语法格式如下
修饰符 function __construct(参数列表){
//初始化操作
}
需要注意的是构造方法的名称必须为__constuct(),修饰符可以省略,默认为public
案例
<?php
class person{
public $name; //成员属性,存储姓名
public $age;
//声明一个构造方法,将来创建对象时,为对象成员属性赋予初始值
function __construct($name,$age){
$this->name=$name; //使用传入的参数$name为成员属性$this->name赋初值
$this->age=$age;
}
function show(){
echo $this->name.'='.$this->age;
}
};
$p=new person("张三",18);
$p->show();
?>
运行结果
注意:
(1)构造方法没有返回值
(2)构造方法的作用是完成对新对象的初始化,并不是创建对象本身
(3)在创建对象后,系统会自动调用该类的构造方法,不需要手动调用
(4)一个类且只有一个构造方法,在php5后虽然__construct()和类名()可以共存,但只能使用一个
(5)构造方法和普通方法一样,可以访问类属性和方法,也有访问控制修饰符,还可以被其他方法调用
析构方法在对象销毁之前会被自动调用,用于释放内存,其语法格式如下:
function __destruct(){
//清理操作
}
需要注意的是,析构方法的命名必须为"__destruct()"且析构方法不带任何参数
案例
<?php
class person{
public function show(){
echo "大家好,我是persom类的对象<br>";
}
//声明析构方法,在对象销毁前自动调用
function __destruct(){
echo "对象被销毁";
}
}
$p=new person();
$p->show();
?>
运行结果
*声明:内容来源于网络收集和整理,版权归原著所有,如来源信息有误或侵犯权益,请联系站长作修改和删除处理。