Синтаксис для объявлений новых классов в переполнении стека

Я унаследовал проект php, который ранее был назначен другой компании-разработчику, и я часто вижу очень странные реализации кода, которых я никогда раньше не видел и которые, вероятно, являются ошибками. Тем не менее, они есть везде, и журналы сервера не жалуются на них и не выносят предупреждений. Возможно, что error_reporting был выключен где-то.

Например, я вижу много объявлений классов:

$registration = new EventRegistration;

Это странно для меня, так как я когда-либо видел только экземпляры классов, использующие new сделано как:

$registration = new EventRegistration();

Может кто-нибудь уточнить, если это неверно / не лучшая практика / сносно?

Я предполагаю, что это просто синтаксическая ошибка, которая компилируется, но технически неверна. Нечто подобное тому, когда люди делают синтаксис массива вроде $array[key] вместо $array['key'], Это верно?

Благодарю.

1

Решение

С new ключевое слово, которое вы хотите создать новый объект, если этот объект не требует никаких аргументов (как определено в __construct() метод) его прекрасно нормально пропустить (),

class foo{
function __construct(){}
} // valid

class bar{
function __construct($arg = null){}
} // valid

class foobar{
function __construct($arg){}
} // not valid

В этом сценарии только foobar вызовет предупреждение, если вы не передадите аргументы. Это вопрос предпочтения, я бы сказал.

Но для $array[key] я бы сказал key является константой и, скорее всего, вызовет предупреждение.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]