2017-01-14 10 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 

次の場所で説明されている不適切な数値のエラーが発生しました。 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 

ただし、エラーは引き続き発生します。もう1つの提案はPHP警告を抑制することでしたが、私が他のコードをデバッグする過程にあるので、私はそれをしたくありません。私はそれが良い習慣だとは思わない。

大きなコード体の由来に興味がある人は、WordPressの 'X'テーマです。このエラーは、PHP 7.0から7.1への変換時にのみ発生します。

これを解決するための洞察があれば教えてください。ありがとう。

+0

私はまったく同じエラーがあります。あなたはこれを修正することができましたか? – Reyske

答えて

0

私は実際には、新しいXテーマのアップデートにアップグレードし、PHP 7.1.8にアップデートすることで修正しました。もうエラーはありません!

関連する問題