我最近在我的服务器上将PHP版本从7.0更改为7.1。在查看我的错误日志时,我现在收到以下错误:
AH01071:收到错误'PHP消息:PHP警告:第74行/ nPHP上的/width.php遇到非数字值
受影响的代码如下。第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建议在$ content-width中捕获潜在的'auto'值并将其转换为零。我试图通过以下代码更改来执行此类错误捕获:
//
// 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警告,但由于我正在调试其他代码,我不想这样做。我也认为这不是好的做法。
对于对代码体较大的地方感兴趣的人来说,它是WordPress的“X”主题。只有在从PHP 7.0转换为7.1时才会出现错误。
欣赏任何有关修复此问题的见解。感谢。
答案 0 :(得分:0)
我实际上通过升级到新的X主题更新并更新到PHP 7.1.8来修复它。没有更多的错误!