一、构造方法
构造方法用于完成创建对象时总要进行、首先来做的工作;创建对象的时候,要给对象进行初始化,这个时候就要调用我们的构造方法,构造方法是自动调用。
与普通成员方法的区别
- 其名称永远是
__construct()
; - 当创建对象时,它总是会立即被自动调用
一般构造函数是类里定义的第一个方法。但位于属性声明之后。
# 女娲造人
/* class Person
{
public $name = 'jack';
public $sex = '男';
public $info = '帅的令人发指'; // 这种属性都写死了
} */
class Person
{
public $name;
public $age;
public $info;
public function __construct($name,$age,$info)
{
$this->name = $name;
$this->age = $age;
$this->info = $info;
}
public function getDaXiao()
{
return ($this->age >= 18) ? 'da' : 'xiao';
}
}
$jack = new Person('jack',18,'帅的令人发指');
$panan = new Person('panan',19,'帅的没头发');
友情提醒:PHP4以及其他编程语言中(比如C++),创建构造函数的方法是声明一个与类名相同的方法。
二、析构函数
在页面结束、对象销毁的时候自动被调用。 当对象没有指向时,对象被销毁。
$p = null;
析构函数确实和构造函数以及其他方法有所不同,它不能接收任何参数
class test{
public function __destruct()
{
echo '我是在页面结束,销毁对象的时候 触发的';
echo "<br />这里一般用来放置,关闭数据库,关闭文件等等收尾工作。";
}
}
for ($i = 0; $i < 5; $i++) {
echo "<br /> $i";
}
//
class Person {
public function __destruct() {
echo "<br />析构函数在这里执行<br />";
}
}
$p = new Person();
//$p = null;
unset($p);
echo "是否看到被销毁,对象也被销毁呢?";
for ($i = 0; $i < 5; $i++) {
echo "<br /> $i";
}