php中类的构造函数是,PHP 类的构造函数和析构函数

通常一提到 PHP 的构造函数和析构函数,就会想到两个单词 construct 和 destruct,构造和解构。

在学习 PHP 的时候,了解到的构造函数和析构函数就是 __construct() 和 __destruct()。以 __ 开头的方法在 PHP 中称为魔术方法。

PHP 中的魔术方法

__construct(), __destruct(),__call(), __callStatic(), __get(), __set(), __isset(), __unset(), __sleep(), __wakeup(), __toString(), __invoke(), __set_state(), __clone() 和 __debugInfo()

在一个类里这些方法名属于保留字段,除非是要使用魔术功能,否则不应该使用。

学习的时候就想到了 Java 中的构造函数定义方式,定义一个与类名相同的方法,这个方法就是类的构造方法。Java 中的是否存在析构方法不清楚,想来是没有的,因为 Java 有自己的回收机制,不需要代码层面定义。

PHP5 之前的版本中,与类名同名的方法也是可以作为构造函数。为了实现向后兼容性,如果 PHP 5 在类中找不到 __construct() 函数并且也没有从父类继承一个的话,它就会尝试寻找旧式的构造函数,也就是和类同名的函数。因此唯一会产生兼容性问题的情况是:类中已有一个名为 __construct() 的方法却被用于其它用途时。

自 PHP 5.3.3 起,在命名空间中,与类名同名的方法不再作为构造函数。这一改变不影响不在命名空间中的类。

PHP 官方文档说明了这两种构造函数的定义和使用方法。至于为什么中途弃用同名构造函数,不得而知。因为现有的 PHP 版本都是 5 ~ 7,所以同名构造函数用的越来越少。

以下是我在图片上传类中找到一个适配各种版本 PHP 的构造函数写法:class image {

...

function __construct($img){

...

}

function image($img) {

$this->__construct($img);

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值