到底是 new DOMDocument 还是 new DOMDocument() ?

2017-01-02 16:33:19 +08:00
 ericgui
我在看 PHP COOKBOOK 3rd
里面在 388 页,有个$dom = new DOMDocument;
在 420 页,又出现了$doc = new DOMDocument();
我又搜索了半天,这两个分别出现多次。

所以我就郁闷了,这俩到底啥区别?
什么时候用那个括号,什么时候不用?

哪位高人能指点一下?
谢谢
3094 次点击
所在节点    PHP
13 条回复
greatonce
2017-01-02 16:45:52 +08:00
构造函数 __construct() 需要传入参数的时候就用(), 不需要传入参数的时候可有可无
ericgui
2017-01-02 16:50:10 +08:00
@greatonce 豁然开朗啊,谢谢!!
ericgui
2017-01-02 16:52:02 +08:00
@greatonce 那这样说,实例化其他的 Class 的时候,也是这样的规则喽?我也见过其他的 new Person() 和 new Person 。不传入参数的话,括号可有可无,是嘛?
greatonce
2017-01-02 17:22:10 +08:00
只要需要传参数都是需要带括号的,并且传入参数 例如 __construct($param1) 就需要 new ClassName('参数')

__construct($param1='') 或 __construct() 则 new 的时候带不带括号都可以。

看样子楼主是刚学 PHP ,加油吧
ericgui
2017-01-02 17:25:16 +08:00
@greatonce 确实刚学。有点晕。谢谢大侠!
iyaozhen
2017-01-02 18:14:10 +08:00
楼上已经说得差不多了。不过还有一个,代码规范。一般的话不管是否需要参数都 new class()
ericgui
2017-01-02 18:20:52 +08:00
@iyaozhen 那看来 PHP Cookbook 的代码规范也不咋滴。经常不加括号。
jininij
2017-01-02 18:24:42 +08:00
倒不是加不加括号的问题,别一会加一会不加。 space 和 tab ,左大括号放行后还是下一行。。。等等等等,这些都是同一个问题。
ericgui
2017-01-02 18:33:46 +08:00
@jininij 没参数的情况下,这本书就是一会加括号一会不加括号。有参数的那就没得说了,肯定加。
techmoe
2017-01-02 22:17:08 +08:00
不加括号总感觉不清真
ericgui
2017-01-02 22:30:51 +08:00
@techmoe 是,我第一次发现竟然可以不加括号,就觉得很震惊。
mingyun
2017-01-02 23:33:05 +08:00
>>> new stdclass==new stdclass()
=> true
ericgui
2017-01-04 13:07:23 +08:00
@mingyun 谢谢!

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/331724

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX