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

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
というエラーになります。

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

●質問者: popJP
●カテゴリ:インターネット ウェブ制作
✍キーワード:Class ON PHP test エラー
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● yunoka
●35ポイント

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

class test{

private $a;

function hoge(){

$this->a =array();

}

}

で動くと思います。

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

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

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

◎質問者からの返答

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

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


2 ● pahoo
●35ポイント

書式が間違っています。


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

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

class test {
 private $a = array();
 function __construct() {
 //メンバ関数定義
 }
}
◎質問者からの返答

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

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

関連質問


●質問をもっと探す●



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