__construct 和与类同名的函数有什么区别?

发布于 2024-11-27 02:52:30 字数 547 浏览 1 评论 0原文

可能的重复:
函数 __construct 的用途是什么?

__construct 和 __construct 有什么区别函数和与类同名的函数?

class foo {
    function foo ($something){
        echo "I see ".$something." argument";
    }
}

class bar {
    function __construct ($something){
        echo "<br />
            I see ".$something." argument again";
    }
}

$foo = new foo("foo");
$bar = new bar("bar");

Possible Duplicate:
what is the function __construct used for?

is there any difference between __construct function and function with same name as class has?

class foo {
    function foo ($something){
        echo "I see ".$something." argument";
    }
}

class bar {
    function __construct ($something){
        echo "<br />
            I see ".$something." argument again";
    }
}

$foo = new foo("foo");
$bar = new bar("bar");

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

转身以后 2024-12-04 02:52:30

指定的方法是 PHP4 执行构造函数的方法。

为了向后兼容,如果 PHP 5 找不到给定类的 __construct() 函数,它将通过类名称搜索旧式构造函数。实际上,这意味着唯一会出现兼容性问题的情况是该类有一个名为 __construct() 的方法,该方法用于不同的语义。

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

http://www.php.net/manual/en/language.oop5 .decon.php

The method named is the PHP4 way of doing a constructor.

For backwards compatibility, if PHP 5 cannot find a __construct() function for a given class, it will search for the old-style constructor function, by the name of the class. Effectively, it means that the only case that would have compatibility issues is if the class had a method named __construct() which was used for different semantics.

As of PHP 5.3.3, methods with the same name as the last element of a namespaced class name will no longer be treated as constructor. This change doesn't affect non-namespaced classes.

http://www.php.net/manual/en/language.oop5.decon.php

浪菊怪哟 2024-12-04 02:52:30

与类同名的构造函数是 PHP4 的向后兼容功能。自 PHP 5.3.3 起,它不适用于命名空间类。

如果 __constructclass-named 函数都存在,则 __construct 用作构造函数。

Constructor function named same as class is a backward compatibility feature for PHP4. It will not work with namespaced classes since PHP 5.3.3

If both __construct and class-named functions are present, then the __construct is used as constructor.

ゝ杯具 2024-12-04 02:52:30

第一个是旧的 php4 风格“构造”。它与__construct基本相同。

The first one is old php4 style "construct". It is basically the same as the __construct.

不美如何 2024-12-04 02:52:30

不同之处在于,不推荐使用与类相同的名称调用构造函数。

The difference is that calling a constructor by the same name of the class is deprecated.

残龙傲雪 2024-12-04 02:52:30

不同之处在于 PHP 5.3.3 及更高版本将把 function foo() 视为常规方法而不是构造函数。以前的版本会将其视为构造函数。

The difference is that PHP version 5.3.3 and above will treat function foo() as regular method and not constructor. Previous versions will treat it as a constructor.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文