PHP5.2.5のclassでprivate変数を配列として初期化しようとするとエラーになります。

具体的には、以下のコード
<?php
class test {
function __construct() {
private $a = array();
}
}
?>
これを実行すると、
Parse error: syntax error, unexpected T_PRIVATE in /virtual/(中略)/test.php on line 4
というエラーになります。

書式は間違っていないと思うのですが、何が悪いんでしょうか・・・??

回答の条件
  • 1人2回まで
  • 登録:
  • 終了:2009/05/29 19:46:26
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答2件)

id:Yunoka No.1

回答回数27ベストアンサー獲得回数3

ポイント35pt

クラス内変数としてprivateを使いたいのでしょうか?

class test{

private $a;

function hoge(){

$this->a =array();

}

}

で動くと思います。

関数の中で定義すると、基本的にすべて関数の中でしか使えない変数ですので

クラスの関数内でprivateを書いてはいけません。

http://www.stackasterisk.jp/tech/php/php5th01_02.jsp

id:popJP

なるほど、勘違いしていました。

てっきりクラス内のどこでprivate宣言してもいいのかと思い込んでおりました・・・。

2009/05/29 19:46:11
id:pahoo No.2

回答回数5960ベストアンサー獲得回数633

ポイント35pt

書式が間違っています。


PHP5 における private は、メンバのアクセス権として指定するものです。

ですので、配列でなくても、private変数は下記のような位置で定義します。

class test {
    private $a = array();
    function __construct() {
        //メンバ関数定義
    }
}
id:popJP

なるほど、勘違いしていました。

てっきりクラス内のどこでprivate宣言してもいいのかと思い込んでおりました・・・。

2009/05/29 19:46:21

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません