PHP面向对象(二)- 构造方法和析构方法

1 构造方法

构造方法:

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

声明构造方法,名称必须以两个下划线开头,即"__construct"

注意,构造方法是不能返回(return)值的。

构造方法特性:当通过关键字new生成实例的时候,它就会被调用执行。

作用:对一些属性进行初始化,即给一些属性进行初始化的赋值。

一个类只能声明一个构造方法。

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

解说:

  • 在上例中,对实例 x i a o m i n g 的属性 xiaoming的属性 xiaoming的属性name进行赋值,还需要通过使用接口setname( m i n g z i ) 进行操作,如 mingzi)进行操作,如 mingzi)进行操作,如xiaoming->setname(“王小明”);

  • 如果想在生成实例 x i a o m i n g 的同时,就对此实例的属性 xiaoming的同时,就对此实例的属性 xiaoming的同时,就对此实例的属性name进行赋值,就需要用到构造方法"__construct()"。

例子:

//实例:介绍构造方法的使用和技巧
class guests{               //定义类guests
    private $name;
    private $gender;
    function __construct($mingxi,$xingbie){       //定义构造方法__construct()
        $this->name = $mingxi;                //注意,构造方法是不能返回(return)值的。
        $this->gender = $xingbie;
    }
    function getname(){                 //定义函数getname()
        return $this->name;
    }
    function getgender(){               //定义函数getgender()
        return $this->gender;
    }
};
$xiaoming = new guests("赵大勇","男");
$lili =  new guests("方芳芳","女");
echo $xiaoming->getname()."\t".$xiaoming->getgender()."<br />";   //赵大勇 男
echo $lili->getname()."\t".$lili->getgender();       //方芳芳 女

2 析构方法

构造方法的反面–析构方法(destructor):

在对象被销毁的时候被调用执行。

但是因为PHP在每个请求的最终都会把所有的资源释放,所以析构方法的意义是有限的。

语法格式如下:

function __destruct(){

//方法的内容,通常完成一些在对象销毁前的清理任务

}

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

  • 代码运行时,当所有对于某个对象的reference(引用)被毁掉的情况下。
  • 当代码执行到最后并且PHP停止请求的时候调用destructor函数。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值