• ベストアンサー

Parse errorについて教えてください

私は独習PHPという参考書でプログラムの勉強をしている初心者です。 先日、PHPの「オブジェクト指向構文」を勉強していたのですが、その中の「継承」という項目にあるサンプルプログラムを動かしてみたのですがParse errorと言うメッセージが出て動きません。構文に関するエラーという事はわかったのですが括弧や;をチェックしても参考書と変わらないのでタイプミスではないと思うのですが、どなたか解決法をご教授お願いします。以下はそのときのプログラムとエラーメッセージです。 ファイル名:subclass.php <!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http//www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html> <head> <title>サブクラス</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF8" /> </head> <body> <?php class MyClass {  protected $data; public function __construct($data){ $this->data=$data; } public function showData(){ return '入力値は「'.$this->data.'」です。'; } } class MySubClass extends MyClass { public function showData(){ return '***入力値は「'.$this->data.'」です。***'; } } $obj=new MySubClass('PEAR'); print($obj->showData()); ?> </body> </html> エラーメッセージ: Parse error: syntax error, unexpected T_STRING, expecting T_FUNCTION in C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\samples\chap2\subclass.php on line 12

  • PHP
  • 回答数2
  • ありがとう数2

質問者が選んだベストアンサー

  • ベストアンサー
  • php504
  • ベストアンサー率42% (926/2160)
回答No.2

 protected $data; ↑に全角の空白文字があるのが原因でしょう

kumobuki
質問者

お礼

全角スペース消したらできました。 初歩的なミスで恥ずかしいです。 php504さんありがとうございます。

その他の回答 (1)

noname#94983
noname#94983
回答No.1

protected $data;の前に全角のスペースがあるが、これは削除しているだろうか?

関連するQ&A

  • 参考サイトのサンプルコードを試すとエラーになる原因

    2K-NT-XP-phpdev_start.batを開いたときに出てくるコマンドプロンプトは開いたままで、 Apache/1.3.27 (Win32) PHP/4.2.3 running... と表示されています。 http://www.phpbook.jp/tutorial/member/index1.html のサイトのコードを開いて見ると、 Parse error: parse error, expecting `'{'' in c:\phpdev\www\ajax\goo.php on line 14 というエラーメッセージが表示されてしまいます。 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" /> <title>サンプル</title> </head> <body> <?php $tv = new Television(); $tv->channelNo = 8; $tv->dispChannel(); class Television(){ public $channelNo; function dispChannel(){ print('現在のチャンネルは'.$this->channelNo); } } ?> </p> </body> </html> なぜエラーメッセージが出てしまうのでしょうか。 ちなみに、 <?php echo 'テスト'; ?> と書き変えるとちゃんと表示されます。

    • ベストアンサー
    • PHP
  • PHPでParse errorについて

    PHPでParse errorについて PHP設置した際に Parse error: syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /当HPのアドレス/VoteBorn/VoteController.php on line 9 が表示されているのですが 9行目付近を見直しても間違えがわかりません。 <?php //VoteControllerから見たMatrixController.phpへの相対パス require_once "./MatrixController.php"; //Version 1.00 //Made by Nearliquid class VoteController extends MatrixController { private $col_list = array("id", "name", "Vote"); private $target_row = NULL;//ターゲットの行 private $target_vote = NULL;//ターゲットの投票数 private $now_row; public function makeFile($vote_file) { $this->makeMatrix($vote_file, $this->col_list); } //この関数を使わないと、これより下の関数は使用できない。 public function readFile($fp) { $this->readMatrix($fp); } public function checkNameCrash($name) { if($this->getTargetRow("name", $name) === FALSE) {//登録予定の名前は現在投票システム上には存在しない return(TRUE); } else {//二重登録 return(FALSE); } } 以下略・・・・ 申し訳ないのですが 是非ご教示の程よろしくお願いします

    • ベストアンサー
    • PHP
  • parse_errorについて

    お世話になっております。 下記は、認証phpのプログラムになるのですが、  $p_data = file($data_file); の部分にてparse_errorになってしまいます。 どの部分がおかしいのかご教授願えないでしょうか? また皆様がparse_errorの部分を特定する手法として用いている方法をご教授頂けたらと思います。 よろしくお願いします。 <?php $data_file = "./d_file.dat"; //データファイルの指定 if ($action == "post") {  $p_data = file($data_file);  $p_flag = 0;  for($i=0; $i<count($p_data); $i++){   list($id,$pass) = split(",", $p_data[$i]);   if($id == $u_id && $pass == $passwd){    $p_flag++;   }  }  if($p_flag > 0){   echo "<FONT COLOR='red'>おめでとうございます。あなたは正式に認証されました。</FONT>\n" ;  } else {   echo "<FONT COLOR='red'>ユーザーIDとパスワードが間違っています。やり直して下さい。</FO NT>\n";  } } ?> d_file.dat の中身 komochan,777, komo,888, micchan,999,

    • ベストアンサー
    • PHP
  • どうしてもParse errorがでます

    独習PHPという本でプログラミングを勉強しています。 本の通りにプログラムを書いたのですがどうしてもエラーがでます。 Parse error: parse error, unexpected ';' in C:\Program Files\Apache Group\Apache2\htdocs\insert_process.php on line 7 セミコロンも確認しました。どうかご教授ください。 以下がソースです。 <?php try { $db=new PDO('sqlite:samples.sqlite'); $db->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION); $db->exec("INSERT INTO address(name,address,tel,email) VALUES(" .$db->quote($_POST['name'].",".$db->quote($_POST['address']."," .$db->quote($_POST['tel'].",".$db->quote($_POST['email']).")"); header('Location: http://'.$_SERVER['HTTP_HOST'] .dirname($_SERVER['PHP_SELF']).'/insert_form.php'); } catch (PDOException $e){ print('エラー発生:'.$e->getMessage()); } ?>

    • ベストアンサー
    • PHP
  • (PHP)Parse errorの意味

    ●質問の主旨 下記のコードを実行すると readfile('./news_data/news.txt');のところで Parse error: syntax error, unexpected '/' が出ます。 eclipseでもやはり同様のエラーが出ますが、 どこが構文エラーなのか分かりません。 ご存知の方ご教示願います。 ●コード <?php $doc = file_get_contents('./news_data/news.txt'); $doc .="<br />2010-05-02 ニュースを追加"; file_put_contents('./news_data/news.text, $doc); readfile('./news_data/news.txt'); ?>

    • ベストアンサー
    • PHP
  • Parse error: syntax error

    こんにちは。 WPに設定しているテーマで、sample.comでは表示されるのですが、www.sample.comでは「Parse error: syntax error」と構文エラーが出てしまい、表示されません。 該当行は、下記★マークで、閉じタグなども誤っていないようなのですが、原因が解りません。どなたか教えていただけないでしょうか? if ( ! function_exists( 'tgmpa' ) ) { function tgmpa( $plugins, $config = array() ) { foreach ( $plugins as $plugin ) { $GLOBALS['tgmpa']::$instance->register( $plugin ); ★ } if ( $config ) { $GLOBALS['tgmpa']::$instance->config( $config ); } } }

  • Parse errorなんですが・・・

    Parse error: syntax error, unexpected '&' in C:\Program Files\Apache Group\Apache2\htdocs\php10\dbtest1.php on line 2 というエラーがでます。 ホスト名、ユーザー名、パスワードはあっていると思うんですが・・・ というかホスト名とはなんのことでしょうか?? ユーザー名、パスワードはデータベースでの設定ですよね? <?php &con=mysql_connect("localhost","sample","password") or die("接続できません。"); print"接続に成功しました。"; mysql_close(&con); ?> 本当に初心者ですみません ご教授、お願いいたします。

    • ベストアンサー
    • PHP
  • 【初歩】 極単純なFOR文がなぜ「parse error」になるのかわかりません…

    下記のサンプルが,どう見直しても Parse error: parse error, unexpected T_VARIABLE in C:\hoge.php on line 2(2行目とは$str1 = "1";のこと). となってしまうのですが,なぜでしょうか. 下記は質問向けにアレンジしたものですが 本番環境の方では少しメッセージが異なり: Parse error: parse error, unexpected T_FOR in C:\hoge.php on line xxx. と,まあいずれでもエラーになってしまうのですけど・・・ <? php $str1 = "1"; $str2 = "2"; $str3 = "3"; for ($Num = 1; $Num <= 3; $Num++) { echo ${"str" . $Num}; } ?>

    • ベストアンサー
    • PHP
  • htmlフォーム(javascript)が動作しません。

    htmlフォーム(javascript)が動作しません。 フォームの作成でクリックをするとあらかじめ表示されていた薄い文字(入力案内)が消えるようにしたいです。 何度か試してみましたが、うまく動作しません。 よろしければ、アドバイスをお願いします。 (この質問を打ち込む欄と同じ感じにしたいです。) 環境:Mac os10.06、Safari ツール:DreamweaverCS3 確認は、「ブラウザのプレビューで確認」をしています。 それと...バリデートをすると、inputタグで、「HideFormGuide(this)」属性はアクティブではない。。。」とコメントが出てしまいます。 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> バージョンをかえずに違う方法でエラーにならない方法がありましたらアドバイスをお願いします。 【HTML】 <input type="text" value="メッセージ" style="color:#999999; width:550px; height:200px; onfocus="HideFormGuide(this);" onblur="ShowFormGuide(this);"/> 【javascript】※<head>~</head>内に表示させています。 <script type="text/javascript"> var GuideSentence = 'メッセージ'; function ShowFormGuide(obj) { // 入力案内を表示 if( obj.value == '' ) { obj.value = GuideSentence; obj.style.color = '#808080'; } } function HideFormGuide(obj) { // 入力案内を消す if( obj.value == GuideSentence ) { obj.value=''; obj.style.color = '#000000'; } } </script>

  • parseとtoStringの違い

    javascriptを勉強中です。 基本的な事かもしれませんが識者の方、宜しくお願いします。 以下のようなスクリプトで parseの部分をtoStringにすることで何が違ってくるのでしょうか? データの型?が違うのでしょうか? 御存じの方がいましたらご教授下さい。 function totest(str){ this.str = "abcdefg"; this.str += str; return this.str; } function test1(str){ this.str = str; this.parse = totest } var str = "aaa”; var p1 = new test1(str); alert(p1.str); alert(p1.parse(str));

専門家に質問してみよう