2017-01-14 2 views
1

Недавно я изменил мою версию PHP с 7.0 до 7.1 на моем сервере. При рассмотрении моих журналов ошибок я получаю следующую ошибку:Ошибка PHP: «Нечисловое число, встречающееся в ...»

AH01071: Got error 'PHP message: PHP Warning: A non-numeric value encountered in /width.php on line 74\nPHP

Код, на который влияет ниже. Строка 74 - это самая последняя строка в коде, которая воспроизводится ниже.

// 
// Get settings. 
// 

$a = x_get_option('x_layout_site'); 
$b = x_get_option('x_layout_content'); 
$c = x_get_option('x_layout_site_width'); 
$d = x_get_option('x_layout_site_max_width'); 
$e = x_get_option('x_layout_content_width'); 
$f = x_get_option('x_layout_sidebar_width'); 


// 
// Adjust settings. 
// 

$site_layout = ($a == '') ? 'full-width'  : $a; 
$content_layout = ($b == '') ? 'content-sidebar' : $b; 
$site_width  = ($c == '') ? 88/100   : $c/100; 
$site_max_width = ($d == '') ? 1200    : $d; 
$content_width = ($e == '') ? 72 - $m   : $e - $m; // Line affected 

Я прочитал о некорректно сформированном числовом значении, которое обнаружила ошибку, описанную в следующих местах. 1, 2, 3, 4 Выполнение нескольких поисковых запросов Google, похоже, что это связано с тем, как PHP 7.1 имеет дело с нечисловыми вычислениями, как указано здесь. 5 Рекомендация заключается в улавливании потенциального значения «auto» в $ content-width и преобразовании его в ноль. Я попытался сделать такое улавливание ошибок следующими изменениями кода:

// 
// Adjust settings. 
// 

$site_layout = ($a == '') ? 'full-width'  : $a; 
$content_layout = ($b == '') ? 'content-sidebar' : $b; 
$site_width  = ($c == '') ? 88/100   : $c/100; 
$site_max_width = ($d == '') ? 1200    : $d; 
if ($m=='auto') {$m=0;} // set auto to 0 
$content_width = ($e == '') ? 72 - $m   : $e - $m; // Line affected 

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

Для тех, кто заинтересован в том, где больше тела кода, это тема «X» для WordPress. Ошибка возникает только при конвертации с PHP 7.0 на 7.1.

Оцените любое понимание этого исправления. Благодарю.

+0

У меня такая же ошибка. Удалось ли вам это исправить? – Reyske

ответ

0

Я действительно исправил его, обновив новое обновление темы X и обновив его до PHP 7.1.8. Больше ошибок!

 Смежные вопросы

  • Нет связанных вопросов^_^