- ベストアンサー
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
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
参考URLのソースは、インデントするために、全角スペースを使っているようです。 まず、これを半角スペース(2個)に置き換えて下さい。 それで、エラーはでなくなると思いますが その上で、function sayHello() のnameは self::name の間違いです。(コメント通り自称ポルシェが使われるには)
その他の回答 (1)
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
回答No.1
使えますが、 どんなソースでエラーになるのでしょう?
質問者
補足
参考サイトのサンプルををそのまま実行してみました。 やっぱりエラーになります。 <?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
お礼
できました。 ありがとうございました! self:: って参考サイトに書いていなかったんですけど、何なんでしょうか? 名前を解決するためのものとかですか?
補足
const MyHome = = $_SERVER[HOME].'/home/'; とするとエラーになるんですけど、 const には式を代入できないんでしょうか? define() では式を使えるのでconstに置き換えることができずにこまっています。 どうにかならないでしょうか?