PHPでクラス内のpublicでエラーになる原因

このQ&Aのポイント
  • PHPでクラス内のpublicでエラーになる原因とは何でしょうか?Apache/1.3.27を使用していると、下記のコードでエラーが発生します。エラーの原因は何でしょうか?アドバイスを頂けませんか?
  • PHPのクラス内でpublicを使用するとエラーが発生してしまいます。Apache/1.3.27を使用している場合、以下のコードでエラーが発生します。エラーの原因が分かりません。アドバイスを頂けませんか?
  • PHPでクラス内のpublicを使用するとエラーが発生します。使用しているApache/1.3.27では、以下のコードでエラーが発生します。エラーの原因が分かりません。アドバイスを頂けませんか?
回答を見る
  • ベストアンサー

PHPでクラス内のpublicでエラーになる原因

Apache/1.3.27を使っています。 下記コードをローカルで表示すると Parse error: parse error, expecting `T_OLD_FUNCTION' or `T_FUNCTION' or `T_VAR' or `'}'' in c:\phpdev\www\ajax\sql.php on line 11 というエラーが出てしまいます。 なぜエラーになるのか原因が分かりません。 アドバイスを頂けないでしょうか。 <html> <head><title>PHP TEST</title></head> <body> <?php $tv = new Television(); $tv->$channelNo = 8; $tv->dispChannel(); class Television{ public $channelNo; function dispChannel(){ print('現在のチャンネルは'.$this->channelNo); } } ?> </body> </html>

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

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

  • ベストアンサー
  • BellBell
  • ベストアンサー率54% (327/598)
回答No.2

PHP4にはクラス変数(メンバ変数・プロパティ)に、public等の指定ができません。 これは、PHP5から追加された機能です。 PHP4ではvarで宣言します、そして宣言されたものはすべてpublicになります。 ※private変数は存在しません。 public $channelNo; ↓ var $channelNo; 参考にしているのは、PHP5のソースなのでPHP4ではエラーが出るというだけで、該当サイトが間違っているわけではありません。 ※PHP5のソースをPHP4で動かそうとしていう、質問者様の行動が間違っているだけです。 現在ではほとんどのレンタルサーバはPHP5が主流ですし、どっちみちPHP習得に時間が掛かるでしょうから、PHP4で動かす意味が今後ますますなくなっていくだけだと思います。 ローカルのテスト環境もPHP5を入れ直してみてはいかがですか?

kiseki777
質問者

お礼

有難うございました。 試してみます。

その他の回答 (1)

  • BellBell
  • ベストアンサー率54% (327/598)
回答No.1

『publicでエラーになる』んだったら、PHP4で動かしてるんじゃない? $tv->$channelNo = 8; ↑こんなわけの判らない事をしている部分もあるけれど、11行目ではないし一旦無視。

kiseki777
質問者

お礼

PHPは4.2.3です。 こちらのサイトを参考にやっているのですが、 http://www.phpbook.jp/tutorial/member/index1.html PHPのヴァージョンを落とさないとできないのでしょうか。 それかPHP4用の書き方というのがあるのでしょうか。

関連する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, unexpected T_STRING

    すみません PHPのエラー教えてください ------------------------------内容は↓ <?php // まずはクラス名を指定 class AboutMe { // 変数のタイプを指定します ●ここ●public $name = "デイビッド田中"; public $email = "david.tanaka@davidtanaka.localdomain"; public $phone = "011-81-333-333-3333"; } // クラスを呼び出します。 $About = new AboutMe(); // 情報を表示します print($About->name); ?> ---------------------------------ココまで ●ここ●は印のために入れたもの エラーは parse error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in ●ここ● エラー番号は●ここ●を指しています WindowXP、Apache、PHP5

    • ベストアンサー
    • PHP
  • エラーメッセージの意味をおしえてください

    以下のエラーメッセージの意味をおしえてください。ワードプレス更新中に画面が真っ白になり、エラーメッセージが出るまでたどり着きましたが以下のメッセージの意味が分かりません。わかる方、至急教えてください。 Parse error: parse error, unexpected T_CONST, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /home/takada-group/lazycurry.net/public_html/wp-content/plugins/akismet/class.akismet.php on line 4

  • constでパースエラー

    <?php class hoge { const MOGE = 'moge'; function poge() { echo 'poge'; } } ?> なコードを書くと、 Parse error: syntax error, unexpected T_CONST, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in ...\test.php on line 5 とのエラーがでます。 constの部分をコメントアウトすればエラーはでません。 環境は、WindowsのXAMPP環境で、PHPのバージョンを4に変更してテストしているところなのですが... PHP Version 4.4.8 Apache/2.2.8 PHP5の環境では、正常に動作しました。 よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • PHPでのエラー(unexpected T_STRING~)

    PHP5で、以下のクラスで構文エラーが出てしまいます。 //=================================================== <?php class fileUpload{ define (kakunou_PATH, "../cast_img/" .$_FILES["file_data1"]["name"]); var $error_message; function fileUpload($ftmp_name, $fsize;){ (省略) } } //=================================================== *****エラーメッセージ******************************** Parse error: syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /home/sites/heteml/users61/v/e/n/venusline/web/config/fileUpload_class.php on line 5 ***************************************************** 5行目はdefine()の行です。 ちなみにここでパスを定義してますが、 define()を使うのでは無く var $path = 'パス名'; としても同じエラー。 また、$_FILESの記述を削っても同じエラーが出ます。 エラー文中のT_OLD_FUNCTION が気になったので、 一応コンストラクタを__constructにも変えてみたのですがやはりダメでした・・ どなたかエラーの原因が解る方、どうぞ宜しくお願いします。

    • ベストアンサー
    • PHP
  • URLを入力したら次のエラー表示が出ました。

    つい先日までは、問題なくwebサイトが表示されていたのに、今回は、以下の表示が出て、サイトを開けません。 Parse error: syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /home/mh200609/public/www/aladdin_amazon/lib/amazonAPI.php on line 8 どのように処置したらいいのでしょうか?

  • エラーの意味!

    初めて見るエラーで困ってます!! どなたか教えてください! Parse error: parse error, expecting `T_STRING' or `T_VARIABLE' or `T_NUM_STRING' in /***/***/***/test.php on line 331

    • ベストアンサー
    • PHP
  • ヒアドキュメントとクラスの基本的?な質問です

    PHPのヒアドキュメントを使ってHTMLのクラスを使ろうと思っているのですがいきなりわからなくなってしまいました。下のソースのどこがいけないのでしょうか。 エラー内容は Parse error: parse error, unexpected $end in \Html.php on line 19 です。よろしくお願いします。 index.php <?php require_once("./Html.php"); $html = new Html(); print $html->NoFrame(); ?> Html.php <?php class Html{ function Html(){ } function NoFrame(){ $html = <<<EOF <html> <head> <title> </title> </head> <body> おーい </body> </html> EOF; return $html; } } ?>

    • ベストアンサー
    • 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
  • PHPでエラーがでてしまって困っています。

    Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /Applications/MAMP/htdocs/5-2-1.php on line 30 このエラーを解消できません。 下記は実践マスターPHP+MYSQLという書籍のなかのサンプルなんですが、どこが間違っているかどなたか教えていただけないでしょうか? エラーを検索するとダブルクォーテーションの使い方が原因と書いてあるんですが、最近PHPを勉強したばかりでどうやっても解決できません。 function check_3(&$str){ $str =str_replace($GLOBALS["from"],$GLOBALS["to"],$str);  ←この行でエラー global $msg; $msg = $GLOBALS["from"].'から'.$GLOBALS["to"].'へ置換しました!<br>'; return strlen($str); } 宜しくお願いします。

    • 締切済み
    • PHP

専門家に質問してみよう