Warning: Division by zeroというエラー(Warning)をたまに見かけます。このエラーはどういったときに発生するのでしょうか?

Warning: Division by zero

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の場合は割り算を行わずに別の文言を表示します。

ECCUBE制作トップへ

EC-CUBEカスタマイズに関するお問い合わせはこちら

    脆弱性修正