当前位置: 首页 > 面试题库 >

__construct()与SameAsClassName()在PHP中的构造函数

欧阳俊晖
2023-03-14
问题内容

__construct()在PHP中使用构造函数代替类名有什么好处吗?

范例(__construct):

class Foo {
    function __construct(){
        //do stuff
    }
}

示例(命名):

class Foo {
    function Foo(){
        //do stuff
    }
}

__construct从PHP 5开始就可以使用该方法(第一个示例)。

从PHP版本4到版本7,可以使用与该类的名称相同的方法作为构造函数(第二个示例)。


问题答案:

我同意gizmo,优点是这样,如果您重命名类,则不必重命名。干燥。

同样,如果您有儿童班,您可以致电

parent::__construct()

调用父构造函数。如果进一步更改子类继承的类,则不必将构造调用更改为父类。

看来这是一件小事,但是缺少将构造函数调用名称更改为您的父类可能会产生细微(而不是细微)的错误。

例如,如果您将类插入到自己的继承人中,但是忘记更改构造函数调用,则可以开始调用祖父母而不是父母的构造函数。这通常可能会导致不良结果,而这些结果可能很难注意到。

另请注意

从PHP 5.3.3开始,与命名空间类名称的最后一个元素具有相同名称的方法将不再被视为构造函数。此更改不会影响非命名空间的类。

来源:http://php.net/manual/en/language.oop5.decon.php



 类似资料:
  • 本文向大家介绍php构造函数与析构函数,包括了php构造函数与析构函数的使用技巧和注意事项,需要的朋友参考一下 php构造函数是对象创建完成后,第一个自动调用的方法,析构函数是当对象被释放之前最后一个自动调用的方法。本文章向大家介绍php构造函数与析构函数。 php构造函数 1.是对象创建完成后,“第一个”“自动调用”的方法 2.构造方法的定义,方法名是一个固定的, 在php4中:和类名相同的方法

  • 本文向大家介绍ThinkPHP中__initialize()和类的构造函数__construct()用法分析,包括了ThinkPHP中__initialize()和类的构造函数__construct()用法分析的使用技巧和注意事项,需要的朋友参考一下 本文实例分析了ThinkPHP中的__initialize()和类的构造函数__construct()。分享给大家供大家参考。具体分析如下: thi

  • 本文向大家介绍PHP 类与构造函数解析,包括了PHP 类与构造函数解析的使用技巧和注意事项,需要的朋友参考一下 ----类的创建---- php使用关键字class创建一个类,并且使用一对大括号 如: 结尾不打分号。则$n,$u为字段;name()为构造函数(__construct()也可定义构造函数,详见下文),可以为字段赋值;rename()为方法。 ----字段与方法---- 比较 与 前者

  • 本文向大家介绍PHP构造函数与析构函数用法示例,包括了PHP构造函数与析构函数用法示例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了PHP构造函数与析构函数用法。分享给大家供大家参考,具体如下: 在实例化一个新对象时,构造方法和析构方法都会被自动调用,若有继承则会使用父类的对应方法。 析构方法在三种情况下会被调用: ① 使用unset()销毁一个对象,若存在对象传值则不会被调用; ② 改

  • 我刚刚开始用Java编程。在讨论方法和构造函数时,我们使用的文本是缺乏的。我不确定方法或构造函数到底是什么,也不确定是什么让它们独一无二。有人能帮我定义它们并区分两者吗?

  • 问题内容: 有人可以澄清Javascript中的构造函数和工厂函数之间的区别。 何时使用一个代替另一个? 问题答案: 基本区别在于,构造函数与关键字一起使用(这会使JavaScript自动创建一个新对象,在该函数内将该对象设置为该对象,然后返回该对象): 工厂函数的调用类似于“常规”函数: 但是要使其成为“工厂”,就需要返回某个对象的新实例:如果它仅返回布尔值或其他内容,则不会将其称为“工厂”函数