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

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

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

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

PHP

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

2回答

1468閲覧

エラーが出ているのですが、解決方法がわからないので分かる方回答お願いします。。。

apple.ringo

総合スコア10

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

PHP

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2020/03/29 06:19

編集2020/03/29 06:39

前提・実現したいこと

エラーの解決方法がわかりません。

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

Parse error: syntax error, unexpected end of file in /Applications/MAMP/htdocs/nampa_game/index.php on line 203

該当のソースコード

<?php ini_set('log_errors','on'); ini_set('error_log','php.log'); session_start(); // デバッグフラグ $debug_flg = true; function debug($str){ global $debug_flg; if($debug_flg){ error_log('デバッグ:'.$str); } } // エラーメッセージ define('NONAME','なまえが入力されていません。'); define('NOAGE','ねんれいが入力されていません。'); define('REAGE','正しく入力してください'); define('MAXLEN','6文字以内で入力してください'); define('HALF','半角で入力してください'); // エラーメッセージ格納用 $err_msg = array(); // 女の子格納用 $womans = array(); // 男のセリフクラス class Serif{ const EAT = 1; const PARK = 2; const MOVIE = 3; const HOTEL = 4; } // 女の返事クラス( ○ ) class ReplyOk{ const EAT = '行きましょ!何食べよっかな〜(*´꒳`*)'; const PARK= '行く行く!どこの遊園地行こうかな〜(*´꒳`*)'; const MOVIE= '行きたい!ちょうど見たい映画あったんだよね〜(*´꒳`*)'; const HOTEL= 'うん。行きましょ❤️'; } //男の喜びクラス class Happy{ const EAT = 'なんでもいいよ!全部おごるよー!'; const PARK= 'どこでもいいよ!行きたいところ連れてくよ!'; const MOVIE= 'おっ!じゃあそれ見に行こ〜'; const HOTEL= 'あそこにホテルあるね!早く行こ!'; } // 女の返事クラス( ✖️ ) class ReplyNo{ const EAT = '一緒にご飯?行くわけないでしょ!!さよなら。'; const PARK= '一緒に遊園地?一人で行ってこい!!さよなら。'; const MOVIE= '映画館?映画見る気分じゃないんだけどー。さよなら。'; const HOTEL= 'ホテル!?気持ち悪っ!さよなら。'; } // 男の悲しみクラス class Sad{ const EAT = 'ご飯くらい行ってくれてもいいじゃん。。。泣'; const PARK= 'ひっ、一人では行きたくないよ。。。泣'; const MOVIE= '行きたくないだけじゃん。。。泣'; const HOTEL= 'さすがにホテルは無理か。。。泣'; } // 抽象クラス(人クラス) abstract class Human{ protected $name; protected $img; public function __construct($name, $age, $img){ $this->name = $name; $this->img = $img; $this->age = $age; } public function setName($str){ $this->name = $str; } public function getName(){ return $this->name; } public function setAge($num){ $this->age = $num; } public function getAge(){ return $this->age; } public function getImg(){ return $this->img; } } // 主人公クラス class Hero extends Human{ public function __construct($name, $age, $img){ parent::__construct($name, $age, $img); } public function attack($targetWoman, $method){ switch($method){ case Serif::EAT : History::set($this->getName().':'.$targetWoman->getName().'ちゃーん、一緒にご飯行かないー?' ,2); break; case Serif::PARK : History::set($this->getName().':'.$targetWoman->getName().'ちゃーん、一緒に遊園地行かないー?' ,2); break; case Serif::MOVIE : History::set($this->getName().':'.$targetWoman->getName().'ちゃーん、一緒に映画行かないー?' ,2); break; case Serif::HOTEL : History::set($this->getName().':'.$targetWoman->getName().'ちゃーん、一緒にホテル行かないー?' ,2); break; } } } // 女クラス class Woman extends Human{ private $level; public function __construct($name, $age, $img, $level){ parent::__construct($name, $age, $img); $this->level = $level; } public function getLevel(){ return $this->level; } public function Reply($targetMan, $method){ switch($method){ case Serif::EAT : if(!mt_rand(0, $this->getLevel())){ History::set($this->getName().':'.ReplyOk::EAT, 3); History::set($targetMan->getName().':'.Happy::EAT, 4); $_SESSION['success'] += 1; } else { History::set($this->getName().':'.ReplyNo::EAT, 3); History::set($targetMan->getName().':'.Sad::EAT, 4); } break; case Serif::PARK : if(!mt_rand(0, $this->getLevel() * 5)){ History::set($this->getName().':'.ReplyOk::PARK, 3); History::set($targetMan->getName().':'.appy::PARK, 4); $_SESSION['success'] += 1; } else { History::set($this->getName().':'.ReplyNo::PARK, 3); History::set($targetMan->getName().':'.Sad::PARK, 4); } break; case Serif::MOVIE : if(!mt_rand(0, $tzhis->getLevel() * 3)){ History::set($this->getName().':'.ReplyOk::MOVIE, 3); History::set($targetMan->getName().':'.Happy::MOVIE, 4); $_SESSION['success'] += 1; } else { History::set($this->getName().':'.ReplyNo::MOVIE, 3); History::set($targetMan->getName().':'.Sad::MOVIE, 4); } break; case Serif::HOTEL : if(!mt_rand(0, $this->getLevel() * 10)){ History::set($this->getName().':'.ReplyOk::HOTEL, 3); History::set($targetMan->getName().':'.Happy::HOTEL, 4); $_SESSION['success'] += 1; } else { History::set($this->getName().':'.ReplyNo::HOTEL, 3); History::set($targetMan->getName().':'.Sad::HOTEL, 4); } break; } } } // インターフェース interface HistoryInterface{ public static function set($str, $num); public static function clear(); } // 履歴管理用クラス class History implements HistoryInterface{ public static function set($str, $num){ if(empty($_SESSION['history'])) $_SESSION['history'] = ''; $_SESSION['history'][$num] = $str; } public static function clear(){ unset($_SESSION['history']); } } // インスタンス生成 $man = new Hero('','','img/mon.jpg'); $womans[] = new Woman('けいこ',(int)mt_rand(20,35),'img/keiko.jpg',(int)mt_rand(1,100)); $womans[] = new Woman('のぞみ',(int)mt_rand(20,35),'img/nozomi.jpg',(int)mt_rand(1,100)); $womans[] = new Woman('かすみ',(int)mt_rand(20,35),'img/kasumi.jpg',(int)mt_rand(1,100)); $womans[] = new Woman('すず',(int)mt_rand(20,35),'img/suzu.jpg',(int)mt_rand(1,100)); $womans[] = new Woman('まさみ',(int)mt_rand(20,35),'img/masami.jpg',(int)mt_rand(1,100)); $womans[] = new Woman('さとみ',(int)mt_rand(20,35),'img/satomi.jpg',(int)mt_rand(1,100)); $womans[] = new Woman('ゆい',(int)mt_rand(20,35),'img/yui.jpg',(int)mt_rand(1,100)); $womans[] = new Woman('みれい',(int)mt_rand(20,35),'img/mirei.jpg',(int)mt_rand(1,100)); $womans[] = new Woman('たお',(int)mt_rand(20,35),'img/tao.png',(int)mt_rand(1,100)); $womans[] = new Woman('つばさ',(int)mt_rand(20,35),'img/tubasa.jpg',(int)mt_rand(1,100)); function createWoman(){ global $womans; $woman = $womans[mt_rand(0,9)]; History::set($woman->getName().'が歩いているよ!', 0); History::set('どうする?', 1); $_SESSION['woman'] = $woman; } function createMan(){ global $man; $_SESSION['man'] = $man; } function init(){ History::clear(); $_SESSION['count'] = 10; $_SESSION['success'] = 0; createMan(); createWoman(); } function gameOver(){ $_SESSION = array(); $_POST = array(); } ?>

試したこと

エラーメッセージにあるように203行付近の誤字脱字を確認しましたが、わかりませんでした。

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

PHP 7.1.33(最新のバージョンだと思います。)
common.php, head.php, footer.phpも必要であれば追加します。(おそらく誤字脱字だと思うので今は載せてありません)

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

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

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

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

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

guest

回答2

0

「解決のための手順」

unexpected end of fileはGoogle翻訳などかけると分かりますが「予期しないファイルの終わり」です。

例えば、
{}の対応ができてない
必要な終端がつけられてない
など。

php

1<?php 2if($a){ 3

ただプログラムは書いた通りしか動かないので、制作者が「どこの{と}が対応している」という意図でコードを打ったのか理解はしてくれませんので、行数が出ません。

それこそ人海戦術のようになりますが、
・最初からカッコの対応付けを意識して打ち直す
・if関係以外を全部消してみる
・ひとまず真ん中以下を全部削って同じエラーが出るか確かめる

など、地道な対応が必要となります。

案外、初めから丁寧に書いていった方がいいかもしれませんね。
特に<?php if($a): ?>``<?php endif ?> の形式で作った時にはよくでているように思います。
※もちろんifのカッコ対応付けだけが原因とは限りません。

PHPコード以外全部削るところから見てみると良いかもしれませんね。


蛇足:
$_SESSIONの中身出力しようとしているところで出力指示(echo)なく変数だけおいてある場所が散見されますが、そこは対応された方が良いかと。

投稿2020/03/29 06:36

m.ts10806

総合スコア80850

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

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

apple.ringo

2020/03/29 06:44

ありがとうございます。やってみます。
guest

0

自己解決

「 } 」がひとつ足りてませんでした。
ありがとうございました。

投稿2020/03/29 07:02

apple.ringo

総合スコア10

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

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

m.ts10806

2020/03/29 11:50 編集

慣習的には「ヒントになった回答」にコメントをつけてその回答をベストアンサーとして選ぶものと思います。 ※自己解決は回答もらう前に解決方法がわかったとか回答もらったけどその回答とは全く別の方法で解決したとか、そういうとき この回答だと「誰に対して」「ありがとうございました。」を言ってるのか分かりません(あと、どこに}が足りてなかったのかも分かりません)。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問