constでパースエラー

このQ&Aのポイント
  • <?php クラス内でconstキーワードを使用すると、パースエラーが発生します。WindowsのXAMPP環境でPHPバージョン4を使用してテストしている場合、エラーが発生しますが、PHP5の環境では正常に動作します。
  • constキーワードを使用する際には、クラスの外で使用するか、PHPバージョン5以降を使用する必要があります。
  • エラーメッセージ「Parse error: syntax error, unexpected T_CONST, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in ... est.php on line 5」と表示される場合は、constの箇所をコメントアウトすることでエラーを回避することができます。
回答を見る
  • ベストアンサー

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の環境では、正常に動作しました。 よろしくお願いいたします。

  • altrn
  • お礼率77% (28/36)
  • PHP
  • 回答数1
  • ありがとう数1

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

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

定数をclassの外にだしてみては? <?php define('MOGE', 'moge'); class hoge{ function poge(){ echo MOGE; } } hoge::poge(); ?>

altrn
質問者

お礼

回答ありがとうございます。 constはPHP5でしか使えないようですね? 失礼いたしました。 defineを使って書き換えてみたいと思います。 ありがとうございました。

関連するQ&A

  • PHPのエラーについて質問です

    PHPのエラーについて質問です XAMPPをインストールして、 http://localhost/top.php のように、フォルダの中身のファイル名を指定すると、 以前までは、ちゃんと表示されていたものが、 Parse error: syntax error, unexpected $end, expecting T_VARIABLE or T_END_HEREDOC or T_DOLLAR_OPEN_CURLY_BRACES or T_CURLY_OPEN in C:\xampp\htdocs\top.php on line 68 のようにエラーが表示されるようになりました。 解決策を教えてもらえないでしょうか?

    • ベストアンサー
    • 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

  • 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 どのように処置したらいいのでしょうか?

  • const 宣言ができない。

    バージョンは PHP 5.0.4 です。 5.0以降、constを使ってクラス内で定数を宣言できるようなのですが、 使うと Parse error: parse error, unexpected T_VARIABLE in ... とエラーが出てしまいます。 サポートしていないんでしょうか? 参考 http://phpspot.net/php/pg%83N%83%89%83X%93%E0%82%C5%82%CC%92%E8%90%94.html

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

    オーサカPHPさんのw3Analyzerと言うアクセス解析を使ってみようと思い 設置してログを見ようとすると、 Parse error: syntax error, unexpected '"', expecting T_STRING or T_VARIABLE or T_NUM_STRING in /××××/w3a/w3a.php on line 82 と出るのですが、これはw3a.phpの82行目がおかしいとでているのでしょうか? w3a.phpは一切なにも変更はしていないのですが・・・ PHP4の環境向けに作られていると書いてあり、自分のサーバーのPHPのバージョンを見てみるとPHP 4.4.8と書いてありました。 これはPHP4と言うことでいいのでしょうか?

    • ベストアンサー
    • PHP
  • エラーがついて

    プログラム初心者です 以前、教えていただいたコードをサーバーで使ってみたらエラーがでました xamppでは動いていたのでたぶんphpのバージョンによるエラーかとおもいます レンタルサーバーはphp5.2.5です 5.5.2に上がるようなことアナウンスされていますがいつになるかわかません 分かる方おねがします(_ _ http://okwave.jp/qa/q8503227.html でたエラーはこれです Parse error: syntax error, unexpected T_FUNCTION in hoge.php on line 59 ここらへんぽいのですが、自分には問題ないようにみえます return preg_replace_callback( $regex, function ($m) use (&$i) { よろしくお願いします

    • ベストアンサー
    • PHP
  • コンパイルエラー???

    どなたか分かる方いらっしゃいましたら ご助言宜しくお願いします。 PHPソース自体には何も問題は無いのですが、たまにParse errorが出てしまいます。 「Parse error: syntax error, unexpected T_STRING, expecting ')' 」 エラーが出ても、何度かリロードを繰り返すと正しく表示されます。 なぜこのような現象がおきてしまうのか、調べても分からない状態です。 どなたか解決策をご存知の方宜しくお願いします。 動作環境 CentOS3.8 apache2.2.4 php4.4.8 Mysql5.0.27 文字コードはeuc-jpで統一

    • 締切済み
    • PHP
  • エラーの意味!

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

    • ベストアンサー
    • PHP
  • クラス内での二次元配列への値の代入について

    以下のソースで、配列変数$a[0][0]にbを代入して、メソッドprintAでそれをprintしようとしていますが、"Parse error: syntax error, unexpected '$a' (T_VARIABLE), expecting function (T_FUNCTION) in C:\xampp\htdocs\a.php on line 4"というエラーが出ます。 どうすれば、$a[0][0]にbを代入して、メソッドprintAでそれをprintできるか教えてください。 phpのバージョンは5.5.15です。 <?php class A{ private $a = array(); $a[0][0] = 'b'; function printA(){ print $this->a[0][0]; } } $x = new A(); echo $x->printA(); ?>

    • ベストアンサー
    • PHP
  • PHPのエラーについて

    このファイルを実行した際に下記のようなエラーが出力されます。 Parse error: syntax error, unexpected '$yamada' (T_VARIABLE), expecting ',' or ';' in C:\xampp\htdocs\study.localhost\sample.php on line 30 何が原因でこのようなエラーが発生しているのでしょうか? 初心者で的外れな質問かもしれませんがよろしくお願います。 <?php class Employee { public $name; private $state = '働いている'; public function getState() { return $this->state; } public function setState($state) { $this->state = $state; } public function work() { echo '書類を整理しています'; } } ?> <?php $yamada = new Employee(); $yamada->job = 'プログラマ'; $yamada->name = '山田'; $yamada->setState('休憩している'); 30行目→echo $yamada->name,'さんは', $yamada->getState();

専門家に質問してみよう