Ответ 1
Назначение скобок - это ввести любые аргументы, которые может принять ваш конструктор.
class Example{
private $str;
public function __construct($str){
$this->str = $str;
}
public function output(){
echo $this->str;
}
}
$ex = new Example; // missing argument error
$ex = new Example('Something');
$ex->output(); // echos "Something"
Если конструктор класса не принимает никаких аргументов, вы можете оставить скобки. Для хорошего кода я всегда сохраняю скобки, независимо от того, принимает конструктор какой-либо аргумент.
Большинство кодеров, исходящих из С# или фона Java, будут хранить скобки, поскольку они более знакомы с ними.