PHP类实例化。使用还是不使用括号?[关闭]


71

我一直认为-在没有构造函数参数的情况下-创建类实例时,括号(花括号)紧跟类名,是可选的,并且您可以根据自己的想法随意添加或排除它们。

这两个陈述是相等的:

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

我对吗?还是我不知道的方括号有什么意义?

我知道这听起来像是一个RTM问题,但是我已经搜索了一段时间(包括整个PHP OOP部分),但似乎找不到一个直接的答案。

Answers:


55

它们是等效的。如果您未按照任何代码约定进行编码,请使用更喜欢的代码。就我个人而言,我喜欢忽略它,因为它对我来说确实很混乱。


2
同意 如果构造函数不接受任何参数,我也将其保留掉了
AntonioCS 2009年

1
谢谢。我希望情况确实如此。-我个人总是喜欢包含它们。我的Java / C#时代的坏习惯:)
Atli,

22
..也,末端看起来像是一个傻笑的唱歌猴子(); laaaa-la
0scar

5
我仍然认为保留括号是更传统的做法!(:比来自C#或Java的非C / C ++背景朋友更友好
。– mauris 2012年

6
我不会遗漏它们,因为它仍然是一个函数调用-调用构造函数方法,也不允许()在调用不带任何必需参数的其他函数或方法时省略。那么,为什么要使用构造函数呢?new Foo()而不是new Foo更好的可读性恕我直言。
hek2mgl

4

$foo = new bar()$foo = new bar如果您要将参数传递给构造函数,将非常有用。例如:

class bar {

    public $user_id;

    function __construct( $user_id ) {
        $this->user_id = $user_id
    }
}

--

$foo = new bar( $user_id );

除此之外,正如已经接受的答案中已经提到的,没有区别。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.