PHP错误:“在...中遇到非数字值”

时间:2017-01-14 16:05:57

标签: error-handling wordpress-theming

我最近在我的服务器上将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

我已经阅读了以下地方讨论过的非格式化数值遇到的错误。1234进行了一些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时才会出现错误。

欣赏任何有关修复此问题的见解。感谢。

1 个答案:

答案 0 :(得分:0)

我实际上通过升级到新的X主题更新并更新到PHP 7.1.8来修复它。没有更多的错误!