Я унаследовал проект php, который ранее был назначен другой компании-разработчику, и я часто вижу очень странные реализации кода, которых я никогда раньше не видел и которые, вероятно, являются ошибками. Тем не менее, они есть везде, и журналы сервера не жалуются на них и не выносят предупреждений. Возможно, что error_reporting
был выключен где-то.
Например, я вижу много объявлений классов:
$registration = new EventRegistration;
Это странно для меня, так как я когда-либо видел только экземпляры классов, использующие new
сделано как:
$registration = new EventRegistration();
Может кто-нибудь уточнить, если это неверно / не лучшая практика / сносно?
Я предполагаю, что это просто синтаксическая ошибка, которая компилируется, но технически неверна. Нечто подобное тому, когда люди делают синтаксис массива вроде $array[key]
вместо $array['key']
, Это верно?
Благодарю.
С 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
является константой и, скорее всего, вызовет предупреждение.
Других решений пока нет …