实例化有或没有括号的类?

Fra*_*ank 75 php

可能重复:
PHP类实例化.使用或不使用括号?

我还没有找到任何官方文件.但是,如果一个类是否在没有括号的情况下被实例化并不重要 - 只要没有涉及参数,对吧?

$car = new Car;
Run Code Online (Sandbox Code Playgroud)

要么

$car = new Car();
Run Code Online (Sandbox Code Playgroud)

但是有人能告诉我表现是否存在差异?哪种方式是"更正确"的方式?这是否有官方文件?

Pek*_*ica 115

性能的任何差异都是绝对可以忽略不计的.

虽然这两种方式都很好,我个人更喜欢使用new Car(); ,因为通常情况下,一个方法正在这里所说的,和PHP函数/方法调用时需要().此外,它与具有参数的实例化更加一致.

但最终,还是要品味.选择哪种方式并不重要,但是当你选择一种方式时,要始终坚持下去!

  • +1老实说我不认为`new ClassUsingDefaultConstructor;`和`new ClassWithConstructorWithParameters($ foo,$ bar);`在同一个脚本中使用`无论什么*都是一致的*.但我想这就是我. (8认同)
  • @Gordon ......使用不同的构造方法似乎是不好的做法.虽然我同意创建易于阅读的代码有一个重要的价值......但我认为这应该是一致的. (5认同)
  • 正是我要写的,+ 1. (4认同)
  • +1并删除我的 - 我同意100%. (4认同)
  • 2019 年发布的 PSR-12 规范表示 **“即使没有参数传递给构造函数,括号也必须始终存在”**。 (4认同)
  • 如果没有参数,我总是省略括号.不需要杂乱,我觉得它看起来更漂亮. (3认同)
  • @dsdsdsdsd当没有给ctor的参数时,我始终将括号排除在外 (3认同)

Art*_*Ale 8

第一个实例没有"官方"参考.在官方的php doc中,你总是找到第二个.所以,我会优先考虑这一点.但这都是你的选择

  • 在快速浏览中,我发现了许多文档示例使用非括号形式的实例,包括"类和对象"部分中的许多实例. (8认同)