Есть ли способ заставить PHP выдавать предупреждения при сравнении разных типов? - PullRequest
0 голосов
/ 19 апреля 2019

Я унаследовал большую кодовую базу, которая почти исключительно использует произвольные сравнения:

$foo = 1
$bar = "1"

if ($foo == $bar)
{
    doThing();
}

В некоторых случаях это приводило к ошибкам.

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

Существуют ли какие-либо глобальные настройки, которые я могу включить, чтобы PHP генерировал предупреждения при сравнении двух разных типов?

1 Ответ

0 голосов
/ 19 апреля 2019

Нет.

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

Поскольку PHP ввел объявлений типов , вы можете быть уверены, что ваши методы гарантированно получат запрошенные типы параметров.Вы также можете объявить тип возвращаемого значения , что также гарантирует, что ваш метод возвращает правильный тип.

Я предполагаю, что вы унаследовали унаследованную кодовую базу с использованием PHP 5. Ваше единственное решение здесь будетобновить до PHP 7 (предпочтительно 7.3) и реорганизовать методы.

С другой стороны, вы также можете разветвить исходный код PHP и написать необходимый код самостоятельно или даже предложить это другим разработчикам PHP.Но рассмотрение вашего предложения, вероятно, займет годы.

...