New Without Parenthesis¶
The new operator may be called without using the parenthesis after the class name.
The parenthesis are necessary when the constructor requires at least one argument. They are optional when no argument is necessary.
It is usually recommended to always use the parenthesis, to keep the syntax consistent across various situations.
This should not be confused with chaining new without parenthesis, where the parenthesis are enclosing the new call.
<?php
class X { } // no constructor, no argument
new X;
new X();
new X(2); // possible, but useless
class Y {
function __construct($i = 0) {}
}
new Y;
new Y();
new Y(2);
class Z {
function __construct($h, $i = 0) {}
}
new Y(1);
new Y(1, 2);
?>
Related : new, __invoke() Method, Chaining New Without Parenthesis