私は最近、自分のサーバー上で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への変換時にのみ発生します。
これを解決するための洞察があれば教えてください。ありがとう。
私はまったく同じエラーがあります。あなたはこれを修正することができましたか? – Reyske