Создание экземпляра класса PHP. Использовать или не использовать круглые скобки?

Я всегда предполагал, что при отсутствии параметров конструктора скобки (фигурные скобки) следуют за именем класса при создании экземпляра класса, являются необязательными и что вы можете включать или исключать их по своему собственному прихоти.

Чтобы эти два утверждения были равны:

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

Я прав? Или есть какое-то значение для скобок, о которых я не знаю?

Я знаю, что это звучит как вопрос RTM, но я искал какое-то время (включая весь раздел PHP OOP), и я не могу найти прямой ответ.

Ответ 1

Они эквивалентны. Если вы не кодируете какой-либо условный код, используйте, который вам больше нравится. Лично мне нравится оставлять это, потому что это действительно просто беспорядок для меня.

Ответ 2

$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 );

Кроме того, как уже упоминалось в принятом ответе, нет разницы.