跟着百度学PHP[4]OOP面对对象编程-6-构造方法(__construct)和构析方法(__destruct)

时间:2023-03-09 16:57:51
跟着百度学PHP[4]OOP面对对象编程-6-构造方法(__construct)和构析方法(__destruct)

函数就是成员方法(方法有三:构造方法、成员方法、析构方法)

下面是两种方法。

构造方法构析方法

00x1 构造方法

构造方法会在创建对象之后自动调用。其名称为__construct

<?php
class Student{
var $name;
var $age;
var $sex; function __construct(){ //可以从输出中看得出来,我们并没有输出这个方法,但是他自动输出了。这个就是构造方法的作用,会自动的被调用!
echo "520PHP<br />";
}
function study(){
echo "学习中,请稍后!";
}
}
$daniu = new Student;
$daniu -> name="大牛梦!";
echo $daniu->name; ?>

输出效果:

跟着百度学PHP[4]OOP面对对象编程-6-构造方法(__construct)和构析方法(__destruct)

00x2 构析方法

析构函数的作用:析构函数是用来在对象关闭时完成的特殊工作,比如在实例化同时打开某文件,但是它什么时候关闭呢,用完就关闭呗,所以析构函数直接关闭它,

构析方法与构造方法相反。析构函数是PHP5新添加的内容,PHP4中没有析构函数。

构析方法的名称必须为__destruct,且构析方法不能带有参数

<?php
/**
*
*/
class Student
{
var $name;
var $sex;
var $age; function __construct($name,$sex,$age)
{
$this->name=$name;
$this->sex=$sex;
$this->age=$age;
} function say(){
echo "我叫:".$this->name."我是一个".$this->sex."生"."我今年".$this->age."岁了<br>";
} function __destruct(){
echo $this->name;
}
}
$zhangsan=new Student("张三","男",);
$lisi =new Student("李四","男",);
$wangwu=new Student("王五","男",); $zhangsan->say();
$lisi->say();
$wangwu->say(); ?>

不加那个函数之前正常的输出是这样的:

跟着百度学PHP[4]OOP面对对象编程-6-构造方法(__construct)和构析方法(__destruct)

加了之后就变成了如下这样:

跟着百度学PHP[4]OOP面对对象编程-6-构造方法(__construct)和构析方法(__destruct)

可以很清楚的看到多了王五李四张三

也就是说他在最后执行了__destruct。

00x2 构析方法

    总的来说就是构造方法在一开始自动执行,析构方法在最后的时候自动执行。

区别:构造方法可有可无的参数,析构方法必须要有参数!

THE END