当前位置:  首页>> 技术小册>> PHP8入门与项目实战(4)

构造方法存在于每个声明的类中,主要作用是执行一些初始化的任务。如果类中没有直接声明构造方法,那么类会默认生成一个没有参数且内存为空的构造方法。

在PHP中,声明构造方法的方法有两种,在PHP 5版本之前,构造方法的名称必须与类名相同,这种构造方法的风格在PHP 8中已经被弃用。

从PHP 5版本开始,构造方法的名称必须以两个下划线开头,即“__construct”。具体的语法格式如下:

  1. function __construct([mixed args]){
  2. //方法的内容
  3. }

一个类只能声明一个构造方法。构造方法中的参数是可选的,如果没有传入参数,就使用默认参数为成员变量进行初始化。

在例8.1中,对实例$xiaoming的属性$name进行赋值,还需要通过使用接口setname($name)进行操作,如$xiaoming->setname(“XiaoMing”)。如果想在生成实例$xiaoming的同时就对此实例的属性$name进行赋值,该怎么办呢?

这时就需要构造方法“_construct()”了。这个函数的特性是,当通过关键字new生成实例的时候,它就会被调用执行。它的用途就是经常对一些属性进行初始化,也就是给一些属性进行初始化的赋值。

下面通过实例介绍构造方法的使用方法和技巧。
【例8.2】

运行结果如图8-2所示。

要记住的是,构造方法是不能返回(return)值的。

有构造方法,就有它的反面“析构方法”(destructor)。它是在对象被销毁的时候被调用执行的。但是因为PHP在每个请求的最终都会把所有资源释放,所以析构方法的意义是有限的。具体使用的语法格式如下:

  1. function__destruct(){
  2. //方法的内容,通常完成一些在对象销毁前的清理任务
  3. }

PHP具有垃圾回收机制,可以自动清除不再使用的对象,从而释放更多的内存。析构方法是在垃圾回收程序执行前被调用的方法,是PHP编程中的可选方法。

析构方法在执行某些特定行为时还是有用的,比如在对象被销毁时清空资源或者记录日志信息。

在以下两种情况下,析构方法可能被调用执行。

·代码运行时,当所有对于某个对象的reference(引用)被毁掉的情况下。

·当代码执行到最后并且PHP停止请求的时候调用destructor函数。


该分类下的相关小册推荐: