Warning: Division by zeroというエラー(Warning)をたまに見かけます。このエラーはどういったときに発生するのでしょうか?
Division by zeroの原因は?
割り算では割る数を0にすることはできません。phpでは数字を0で割った際にこのDivision by zeroエラーが発生します。
そのため、プログラムを書く際は割る数(分母)が0にならないようにプログラマー自身が気をつけないといけません。
Division by zeroの発生例
EC-CUBEはECサイトなので割引率を表示したい場合がよくあります。
通常価格1000円 販売価格800円の場合、(1000-800) ÷ 1000 で「20%OFF」と表示したいわけです。
ところが、EC-CUBEでは通常価格が必須項目ではなく任意項目のため、通常価格が登録されていない場合も計算式を適用してしまうと(0 – 800) ÷ 0という計算式が生まれてしまいます。
これが一番よくあるDivision by zeroのパターンです。
回避方法
先にIF文で割る数、上の場合であれば通常価格が0でないかどうかをチェックします。
0の場合は割り算を行わずに別の文言を表示します。
EC-CUBEに関するお問い合わせ
[重要]現在公式にセキュリティサポートが切れていないPHPは8.1以上、MySQLは8.0以上で、対応しているEC-CUBEバージョンは4.2以上です。古いEC-CUBEを使っている方は適切なタイミングでバージョンアップをご検討ください。