前提・実現したいこと
form.phpで入力し、calculate.phpで処理し、エラーがあれば表示、あるいは計算結果を表示させます。
発生している問題・エラーメッセージ
処理自体は行えているのですが、calculate.phpの8行目と23行目に割る数が0でないかの同じチェックをしています。
8行目の方はエラーメッセージを表示するため、23行目の方は割る数が0の場合を除いて、割り算処理を行います。
同じような内容を繰り返しで行っているので、先にエラーチェックをして、よりシンプルに処理する方法がないか考えているのですが。思い浮かびません。何かアドバイスいただけませんでしょうか?よろしくお願いします。
エラーメッセージ
該当のソースコード
"PHP"
(form.php)
(calculate.php)
<?php $num1 = $_POST['num1']; $num2 = $_POST['num2']; $calcu = $_POST['calcu']; if (!is_numeric($num1) || !is_numeric($num2)) { $message1 = "数字以外が含まれているため、計算できません。"; } if ($calcu === "divide" && $num2 == 0) { $message2 = "割る数が0のため、計算できません。"; } if (is_numeric($num1) && is_numeric($num2)) { switch ($calcu) { case "plus": $answer = $num1 + $num2; break; case "minus": $answer = $num1 - $num2; break; case "times": $answer = $num1 * $num2; break; case "divide": if (!$num2 == 0) { $answer = $num1 / $num2; } break; } } ?> <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>計算結果表示</title> </head> <body> <div> <?php if (isset($message1)) { echo $message1 . "<br>"; } if (isset($message2)) { echo $message2; } if (isset($answer)) { echo "計算結果: " . $answer; } ?> </div> </body> </html>