人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

phpに関する質問です。
php5なのですが、クラスのメンバー変数の定義を下記のようにやろうとすると

var $hoge = LIB_PATH."/hoge";

エラーがでて怒られてしまいます。
※ちなみにLIB_PATHは定義済みの定数です。

Parse error: syntax error, unexpected '.', expecting ',' or ';' in 〜〜〜

ドットが怒られているようなのですが、ここではドットで文字列の結合ができないのでしょうか。
また、関数の引数の初期値設定でも同様にドットが怒られます。

調べてみたのですが、特にそれらしい記述はマニュアルやネット上には記載が見つからず
(多分ドットという検索に引っ掛けずらい単語のせいもあるとおもうのですが)
ご存知の方がいればお教えいただければと思います。

●質問者: n_maco2
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:hoge PHP エラー クラス ドット
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● GreenStar
●8ポイント

php5ではインスタンスを生成してメンバ変数を使います!!

$hoge = new クラス名;
$hoge->変数名

クラス内では略式が使えます!!

$this->変数名
◎質問者からの返答

ご回答ありがとうございます。

が、どうも質問の意図からずれてしまった回答のように思えます。

そのメンバ変数の初期設定値が渡せると思うのですが、

その値を「.(ドット)」を使って設定すると、上記のエラーが出てしまう、という問題についてお伺いできればと思います〜


2 ● GoldenDawn
●62ポイント ベストアンサー

この辺ですね。

http://php.atpedia.jp/php/ja/language.oop5.basic.html

デフォルト値は定数でなければなりません。(たとえば) 変数、クラスのメンバあるいは関数コールなどは使用できません。

<?php
class SimpleClass
{
 // 無効な形式のメンバ宣言
 public $var1 = 'hello '.'world';
 public $var2 = <<<EOD
hello world
EOD;
 public $var3 = 1+2;
 public $var4 = self::myStaticMethod();
 public $var5 = $myVar;

 // 有効な宣言
 public $var6 = myConstant;
 public $var7 = self::classConstant;
 public $var8 = array(true, false);
 
 
}
?>
◎質問者からの返答

書いてありましたか!

お教えいただきありがとうございました。

なるほど.という命令文を使って生成した文字列、ではいけないのですね。

勉強になりました、ありがとうございます。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ