1. ホーム
  2. php

[解決済み】警告。数値でない値に遭遇しました

2022-02-17 14:48:04

質問内容

最近、PHP 7.1 にアップデートしたところ、以下のエラーが発生するようになりました。

警告 29行目で非数値が見つかりました。

29行目はこんな感じです。

$sub_total += ($item['quantity'] * $product['price']);

ローカルホストではすべて正常に動作しています。

この問題に対処する方法、または原因は何でしょうか?

解決方法は?

PHP 7.1では、数値以外を入力すると警告が出るようです。これを参照してください。 リンク .

以下は、表示されている警告に関連する部分です。

<ブロッククオート

新しい E_WARNING と E_NOTICE エラーが導入されました。 文字列が数値またはその演算子を用いて強制されました。 代入に相当します。文字列が以下のように始まる場合、E_NOTICEが表示されます。 は数値であるが、末尾に非数値文字を含んでいる。 文字列に数値が含まれていない場合、E_WARNINGが表示されます。 の値です。

どちらかでしょう アイテム['数量'] または $product['price'](商品価格 には数値が含まれないので、掛け算をする前に数値が含まれていることを確認します。小計を計算する前に、ある種の条件を使って、このようにすることもできます。

<?php

if (is_numeric($item['quantity']) && is_numeric($product['price'])) {
  $sub_total += ($item['quantity'] * $product['price']);
} else {
  // do some error handling...
}