<?php
$price = $sum[0][0]["sumPrice"] / $count[0][0]["count"];
if (empty($price)) {
print '0円';
} else {
print $sum[0][0]["sumPrice"] / $count[0][0]["count"];
}
?>
Notice (8): Undefined offset: 0
Warning (2): Division by zero
とのエラーででています。
エラーの下には0が表示されていますが、エラーが消えません。
どうしたらよいのでしょうか?
No.1ベストアンサー
- 回答日時:
<?php
$price = $sum[0][0]["sumPrice"] / $count[0][0]["count"];
if (empty($price)) {
この 「$price = $sum[0][0]["sumPrice"] / $count[0][0]["count"];」 を実行した時点で発生しているNoticeとWarningと思われます。
Notice (8): Undefined offset: 0 から
$sum[0] が存在しない
$sum[0][0]が存在しない
$count[0] が存在しない
$count[0][0]が存在しない
のいずれか、あるいは、複数が原因
Warning (2): Division by zero から
$count[0][0]["count"] == 0 になっている
$count[0] が存在しないため、0として扱われている
$count[0][0]が存在しないため、0として扱われている
のいずれか、あるいは、複数が原因
単にメッセージを出さないだけなら、error_reportingで制御等の方法がありますが、根本対策ではありません。
$price = $sum[0][0]["sumPrice"] / $count[0][0]["count"];
if (empty($price)) {
と、「エラーが発生する可能性のある処理」→「エラーの判定」 とするのではなく
if ( エラーが起る条件 ) {
print '0円';
} else {
print $sum[0][0]["sumPrice"] / $count[0][0]["count"];
}
と、先に判定して、「エラーが発生する可能性のある処理」自体を実行しない、というのがよいやり方です。
あるいは
if ( 有効な値になっているか? ) {
print $sum[0][0]["sumPrice"] / $count[0][0]["count"];
} else {
print '0円';
}
と、する方がいいかもしれません。
なお、emptyでは nullかどうかの判定にはなりません。
nullの判定は is_nullです。
また、「Notice (8): Undefined offset: 0 」のような、配列の添字が存在するかは、 issetやarray_key_existsを使います。
http://php.net/manual/ja/function.isset.php
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP PHPでCookieを使った訪問回数について 1 2023/05/28 14:10
- PHP PHPで画像の渡しが上手く行きません。 1 2023/02/02 09:39
- C言語・C++・C# C言語のエラーについて 2 2022/07/11 13:56
- PHP preg_matchで Warning: Undefined variableが出ます 1 2022/11/15 17:06
- PHP ランキングを表示する際の画像の大きさを固定することは可能でしょうか? <?php if ( has_ 1 2022/07/21 14:55
- PHP PHP ページング データベース 1 2022/06/16 10:30
- MySQL #1062 - '0' は索引 'PRIMARY' で重複しています。とでています。 1 2023/01/01 06:13
- PHP PHP MySql ページング 2 2022/09/20 06:38
- FX・外国為替取引 mql4のコンパイルエラー箇所の修正お願いします。 1 2023/03/15 16:14
- Visual Basic(VBA) vba シートコピーの不具合 1 2022/06/25 17:48
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
パースエラーとは?
-
PHPでネットワークドライブのop...
-
フォントの色を変えるには?
-
phpでクラスのメソッドで同名の...
-
トランザクションが原因?DBに...
-
php pear mdb2に質問です。
-
phpでPEAR::DBを使っているので...
-
PHP8を使うと、大量のWarningが...
-
ローカルでは正常に動くのにサ...
-
クラスの中でincludeするとき、...
-
fgetcsv_regについてのご質問
-
正規表現での最後尾のバックス...
-
awsにApacheとPHPを入れて、何...
-
PHPのHttpRequestモジュールに...
-
centOSにcakePHPを入れた際のエ...
-
Call to undefined method RDBM...
-
error_reporting(0);にも関わら...
-
日本語をGETで渡す場合UR...
-
ワードプレスサイト PHP8.0.25...
-
preg_replace() で、 urlencode()
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
フォントの色を変えるには?
-
PHP8を使うと、大量のWarningが...
-
awsにApacheとPHPを入れて、何...
-
phpでPEAR::DBを使っているので...
-
ワードプレスサイト PHP8.0.25...
-
パースエラーとは?
-
phpでクラスのメソッドで同名の...
-
PHPで、エラーがない場合のみ画...
-
トランザクションが原因?DBに...
-
「@$変数」の「@の意味は?」
-
PHPでfatal errorが出ても無視...
-
PHPで特定のURLにジャンプす...
-
正規表現での最後尾のバックス...
-
PHPでネットワークドライブのop...
-
bindValueエラー
-
error_reporting(0);にも関わら...
-
これは例外処理でしょうか?
-
ある条件に当てはまったときに...
-
php5.6でsimplexml_load_string...
-
PHPでSMTPを使ってメール送信で...
おすすめ情報