• ベストアンサー

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

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

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

参考URLのソースは、インデントするために、全角スペースを使っているようです。 まず、これを半角スペース(2個)に置き換えて下さい。 それで、エラーはでなくなると思いますが その上で、function sayHello() のnameは self::name の間違いです。(コメント通り自称ポルシェが使われるには)

noname#14448
質問者

お礼

できました。 ありがとうございました! self:: って参考サイトに書いていなかったんですけど、何なんでしょうか? 名前を解決するためのものとかですか?

noname#14448
質問者

補足

const MyHome = = $_SERVER[HOME].'/home/'; とするとエラーになるんですけど、 const には式を代入できないんでしょうか? define() では式を使えるのでconstに置き換えることができずにこまっています。 どうにかならないでしょうか?

その他の回答 (1)

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

使えますが、 どんなソースでエラーになるのでしょう?

noname#14448
質問者

補足

参考サイトのサンプルををそのまま実行してみました。 やっぱりエラーになります。 <?php define("name","車"); class MyCar {   const name = '自称ポルシェ';   function sayHello()   {     echo "私は".name."です!"; // 自称ポルシェが使われる。   } } ?> 実行 Parse error: parse error, unexpected T_STRING, expecting T_FUNCTION in test.php on line 4