質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

2回答

1060閲覧

PHP勉強中 演算子

hiro.a

総合スコア28

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

1グッド

1クリップ

投稿2019/02/13 02:23

前提・実現したいこと

PHPの勉強中で参考書をもとにソースを書いています。

■■な機能を実装中に以下のエラーメッセージが発生しました。

発生している問題・エラーメッセージ

Parse error: syntax error, unexpected 'elseif' (T_ELSEIF) in C:\xampp\htdocs\YPHPSample\15\Sample02.php on line 25

該当のソースコード

<!DOCTYPE html> <html> <head> <title>サンプル</title> </head> <body> <?php $num=0; $store=true; print"ようこそ.<br/>\n"; print"<hr/>\n"; if($num <=0 && $store == true){ print"お取り寄せ可能です。<br/>\n"; } elseif($num <= 0 && $store == false){ print"在庫切れです。<br/>\n"; } elseif($num <= 3){ print"在庫が少ないです。<br/>\n"; } else{ print"在庫あります。<br/>\n"; } print"<hr/>\n"; print"ごゆっくりお過ごしください。<br/>\n"; ?> </body> </html>

試したこと

論理演算子を試している中でelseifを二つ続けたところエラーが発生しました。

補足情報(FW/ツールのバージョンなど)

DrqYuto👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2019/02/13 02:27

コードはマークダウンのcode機能を利用してご提示ください。 また、エラー自体は珍しいものではなく構文エラーなので、調べれば解決のヒントとなるものがでてくると思います。
yoorwm

2019/02/13 02:36

というか、わざわざ聞くような内容でしょうか?
m.ts10806

2019/02/13 02:41

質問は修正できます。タイトルには要件を書いていただきたいのです。 今のタイトルでは何が問題なのか、要件なのかが分かりません。 できれば「質問するときのヒント」を熟読した上で質問を再編してください。
hiro.a

2019/02/13 03:09

ありがとうございます。 エラーなくなりました。 今後気を付けます。
m.ts10806

2019/02/13 03:49

質問は編集できるので適宜ご対応ください。 「今後」だとほぼ確実に次の時には忘れるのでこの質問からしていきましょう。
kei344

2019/02/13 04:22

(質問文は編集できます)質問文のコード/エラーはそれぞれコードブロックで囲んでいただけませんか? ```(バッククオート3つ)で囲み、前後に改行をいれるか、コードを選択して「<code>」ボタンを押すとコードブロックになります。
m.ts10806

2019/02/13 05:30

調べた感もない、質問修正依頼にも応じない、解決したのに放置  だと今後回答つかなくなりますよ。
guest

回答2

0

ベストアンサー

プログラミングはなるべく構文チェック機能もある高機能なエディタ、
例えば統合環境(IDE)と呼ばれるもので行われるよう強くすすめます。
構文エラー程度であれば実行前に分かります。

以下はEclipseの例
イメージ説明

こういったエラーがでるとき(unexpected:予期せぬエラー)は
その行数の前後に構文が正しくない箇所があるのがほとんどです。

よくみると分かりますが、
イメージ説明

赤丸をペイントツールで入れてみました。
この三つの閉じカッコ 同じものに見えますか?

2つ目、ちょっと雰囲気違いますね。改行コードまでに余白のようなものが見えます。
全角になっています。

これが直接的な理由ですね。
全角になっているところそのものではなく、その次のコードに影響がでていると解釈されるのが構文エラーの特徴です。
つまり閉じカッコがなく 次のelseifが始まっているという感じですね。

書籍を参考に、または丸写しで勉強している際にはありがちです。
全角と半角の違い、大文字と小文字の違い これらはプログラミングにおいては大別されるものです。
「見えた文字で、自分が認識できる文字で打つ」のではなく「構文を守ってコードを打つ」のを忘れないようにしてください。

今回のようなミスは上から順番に打つのではなく
先に下記のように打っておいて

php

1if(){}

改行して

php

1if(){ 2 3}

条件を入れて

php

1if($num <=0){ 2 3}

その中の処理を入れる

php

1if($num <=0){ 2 echo "hogehoge"; 3}

という手順ですればおそらく間違いなくいきます。

※ちなみにIDEですと開始のカッコ{を打ってEnterすれば閉じカッコを自動で補完してくれる機能もあります

投稿2019/02/13 02:39

m.ts10806

総合スコア80850

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

}が全角になってますね。。

投稿2019/02/13 02:27

mayoi_maimai

総合スコア1583

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問