在之前的文章中给大家带来了《php中怎样实例化对象并且访问对象成员?》,其中详细的介绍了应该怎样去实例化对象和访问对象成员,本篇文章我们一起来看一下php中的构造函数与析构函数,希望对大家有帮助!

PHP类中构造函数也叫作构造器,当时用new关键字实例化一个对象时,它可以在对象被创建时自动调用,是类中的一个特殊函数。与之相对应的函数就是析构函数,析构函数的作用与构造函数正好相反,析构函数它可以在对象销毁前执行操作。那接下来我们一起来看一看这两个函数吧。
__construct():构造函数/方法
在PHP的类中,我们使用__construct()作为类的构造函数,构造函数是当对象被创建时,类中被自动调用的第一个函数,并且一个类中只能存在一个构造函数,并且需要注意的是,如果构造函数中有参数的话,那么实例化也需要传入对应的参数。
构造函数创建的语法格式如下:
public function __construct(参数列表){
... ...
}需要注意的是,其中的参数列表是可选的,不需要的时候可以省略。construct前面是两个下划线__。
实例如下:
study1 = $str1;
$this -> study2 = $str2;
$this -> study3 = $str3;
$this -> study4 = $str4;
$this -> demo();
}
public function demo(){
echo $this -> study1.'
';
echo $this -> study2.'
';
echo $this -> study3.'
';
echo $this -> study4.'
';
}
}
$object = new study('好好学习','天天向上','福如东海','寿比南山');
?>示例中的$this表示当前调用的对象。输出结果:

由上述结果,我们通过,我们通过__construct()构造函数,就调用了类中创建的对象。
__destruct():析构函数/方法
刚才讲到的__construct()构造函数,它会在对象被创建的时候调用,与之相对应的就是析构函数,析构函数的作用与构造函数相反,析构函数只有当对象从内存中删除之前才会被自动调用,在PHP中有垃圾回收机制,当对象不能被访问就会自动启动垃圾回收机制,析构函数就是垃圾回收对象前调用。
__destruct()函数的语法格式如下:
这本书给出了一份关于python这门优美语言的精要的参考。作者通过一个完整而清晰的入门指引将你带入python的乐园,随后在语法、类型和对象、运算符与表达式、控制流函数与函数编程、类及面向对象编程、模块和包、输入输出、执行环境等多方面给出了详尽的讲解。如果你想加入 python的世界,David M beazley的这本书可不要错过哦。 (封面是最新英文版的,中文版貌似只译到第二版)
public function __destruct(){
... ...
}需要注意的是,与构造函数类似,destruct前面也是两个下划线__;不同的是析构函数不能带有任何参数。
实例如下:
';
}
public function __destruct(){
echo '析构函数被调用了
';
}
}
$object = new Website();
echo '好好学习
';
echo '天天向上
';
?>输出结果:

由上述实例可以看出,构造函数与析构函数调用的时间不同,构造函数在对象被创建时自动调用,析构函数在对象被垃圾收集器收集前被调用。
$this:当前对象
在PHP面对对象编程中,对象被创建之后,在对象中的每个成员方法里,都会存在一个特殊的对象引用“$this”,与连接符->联合使用,专门用来完成对象内部成员之间的访问。示例如下:
$this -> 成员属性; $this -> 成员方法(参数列表);
我们在类中访问一个成员属性时,后面只需要跟着属性名称就行了,不用加$符号,$this只能在对象中使用,没有对象就没有$this。
示例如下:
name = $name;
$this -> name();
}
public function name(){
echo $this -> name;
}
}
$object = new Website('好好学习');
?>输出结果:

大家如果感兴趣的话,可以点击《PHP视频教程》进行更多关于PHP知识的学习。









