###前提・実現したいこと
PHPで簡単な電卓(四則計算のみ)を作っています。
ifを使って場合分けをしているときに以下のエラーメッセージが発生しました。
###発生している問題・エラーメッセージ
Parse error: syntax error, unexpected 'else' (T_ELSE) in (ファイル名) on line 54
###該当のソースコード
php
1<?php 2 3if(isset($_POST['left'])){ 4 echo htmlspecialchars($_POST['left'], ENT_QUOTES, 'UTF-8'); 5 echo '<br>'; 6 7 if(ctype_alnum($_POST['left'])){ 8 $left = $_POST['left']; 9 10 if(isset($_POST['right'])){ 11 echo htmlspecialchars($_POST['right'], ENT_QUOTES, 'UTF-8'); 12 echo '<br>'; 13 14 if(ctype_alnum($_POST['right'])){ 15 $right = $_POST['right']; 16 17 if(isset($_POST['symbol'])){ 18 $symbol = $_POST['symbol']; 19 20 switch($symbol){ 21 case "+": 22 $answer=$_POST['left']+$_POST['right']; 23 break; 24 25 case "-": 26 $answer=$_POST['left']-$_POST['right']; 27 break; 28 29 case "×": 30 $answer=$_POST['left']*$_POST['right']; 31 break; 32 33 case "÷": 34 35 if($_POST['right']==0 and $_POST['symbol']=='÷'){ 36 $answer='error'; 37 echo '<p>エラー</p>'; 38 echo '0以外の数字を入れてください'; 39 echo "<br>"; 40 41 }else{ 42 $answer=$_POST['left']/$_POST['right']; 43 } 44 break; 45 default: 46 47 } 48 49 }else{ 50 $answer='error'; 51 echo '計算記号を選択してください'; 52 echo '<br>'; 53 54 }else{ 55 $answer='error'; 56 echo '右に数字を入力してください'; 57 echo '<br>'; 58 59 }else{ 60 $answer='error'; 61 echo '右に値を入力してください'; 62 echo '<br>'; 63 64 }else{ 65 $answer='error'; 66 echo '左に数字を入力してください'; 67 echo '<br>'; 68 69}else{ 70 $answer='error'; 71 echo '左に値を入力してください'; 72 echo '<br>'; 73} 74 75 //計算結果を表示 76 echo ($_POST['left'].' '.$_POST['symbol'].' '.$_POST['right'].' '.'='.' '.$answer); 77 78 ?>
###試したこと
初めはifのまとまりを入れ子構造にせずまとまりごとに組み立てて、最後にコピペを繰り返し以上の形になりました。おそらく何かを消し忘れているとかその類のミスなのだと思いますが、どこが間違っているのかわかりません。入れ子構造にする前は一応動いたは動いたので、おそらく必要な最低限の機能は作れていると思います。
54行目を変更しようと思いましたがこれは14行目のifのelseになるので、消せませんでした。
###補足情報(言語/FW/ツール等のバージョンなど)
電卓実装が初めてで、このエラー以外にも間違っているところあるかと思います。
もし気になる改善点などあれば教えていただけるとありがたいです。

回答5件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/09/27 07:41