您的位置:首页 > 编程语言 > PHP开发

构造方法和析构方法

2016-09-12 20:16 525 查看
构造函数:

1、在实例化类的时候会被自动触发;
2、一个类只有一个构造函数;
3、一般用于初始化操作;
4、没有返回值。
语法:

function __construct([参数列表])
{
.........
}
例子:
<?php
class Person
{
public $name;
public $sex = '女';
public $age;
public $money;
public $face;
//构造方法
public function __construct($name,$age,$money,$face = '女人都是漂亮的')
{
//属性初始化
$this->name = $name;
$this->age = $age;
$this->money = $money;
$this->face = $face;
}
public function say()
{
echo "我的名字是{$this->name},<br>我的年龄是{$this->age},<br>我有{$this->money}元钱,<br>{$this->face}";
}
//实例化类并赋值
$lixiaolou = new Person('李小龙',11,1234);
$lixiaolou->say();
输出的结果:






析构函数:
1、 销毁一个类之前执行析构函数
2、先调用的后消失 后调用的先消失
3、不能带参数
语法:
function __destruct()
{
......
}
例子:

在上一个构造函数源代码的后面添加
public function __destruct()
{
echo "消失了{$this->name}<br>";
}
输出结果:






注意:析构函数是 先调用的后消失 后调用的先消失
<?php
/**
* 定义一个“人类”
*/
class Person
{
public $name;
public $sex = '女';
public $age;
public $money;
public $face;
//构造方法
public function __construct($name,$age,$money,$face = '女人都是漂亮的')
{
//属性初始化
$this->name = $name;
$this->age = $age;
$this->money = $money;
$this->face = $face;
}
public function say()
{
echo "我的名字是{$this->name},<br>我的年龄是{$this->age},<br>我有{$this->money}元钱,<br>{$this->face}";
$this->daojiu();
}
public function daojiu()
{
echo "给老板们倒酒<br/>";
}
//先调用的后消失 后调用的先消失
//先是 陈 消失了 然后是 李小龙 消失
public function __destruct() { echo "消失了{$this->name}<br>"; }
}

$lixiaolou = new Person('李小龙',11,1234); $lixiaolou->say();

echo "<hr>";
$senlin = new Person('陈',12,123);
$senlin->say();


输出:






注意:调用的顺序和销毁的顺序是不一样的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息