PHP错误:”A non-numeric value encountered in…”

我最近在服务器上将PHP版本从7.0更改为7.1。在查看我的错误日志时, 我现在遇到以下错误:

AH01071:收到错误的’PHP消息:PHP警告:/width.php在第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。建议在$ 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警告, 但是由于我正在调试其他代码, 因此我不想这样做。我也不认为这是个好习惯。

对于那些对更大代码体的来源感兴趣的人来说, 它是WordPress的” X”主题。从PHP 7.0转换为7.1时, 仅在此处发生错误。

感谢你对修复此问题的任何见解。谢谢。


#1


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

来源:

https://www.srcmini02.com/65691.html

微信公众号
手机浏览(小程序)
0
分享到:
没有账号? 忘记密码?