Если оператор не работает на новом сервере, требует использования "пусто"

Я унаследовал некоторый код, который отлично работает на одном сервере, который работает под управлением PHP 7.1.7. Во всем коде есть множество операторов if, похожих на следующие, которые проверяют, существует ли переменная.

if ($_SESSION['user'])

if ($_POST['company_id'])

На новом сервере, который как PHP 7.2.5, эти операторы if выдают ошибки. Я должен изменить их все, чтобы использовать "пустой".

if (empty($_SESSION['user']))

if (!empty($_POST['company_id']))

Это не было бы большим делом, если бы было только несколько, но есть 100+. Я попытался изменить версию PHP на 7.1.7 на новом сервере, чтобы он соответствовал старому, но проблема все еще та же.

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

1 ответ

Как предложил @IncredibleHat, вы можете предотвратить это, подавив сообщения об ошибках. Любой из этих трех должен адресовать предупреждения.

// this can go in your PHP
ini_set('error_reporting', E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED);

// OR you can put this in your .htaccess file
php_value error_reporting E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED

// OR you can put this in your php.ini file
error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED
Другие вопросы по тегам