11

以下はphpでの私のコードで、エラーが発生しています:

解析エラー: 構文エラー、4 行目の /LR_StaticSettings.php の予期しない '['

<?php
class StaticSettings{
    function setkey ($key, $value) {
        self::arrErr[$key] = $value; // error in this line
    }
}
?>

$this->arrErr[$key]インスタンス/オブジェクトを作成せずに静的プロパティを取得および設定できるように、静的に使用したくありません。

このエラーはなぜですか? 静的配列を作成できませんか?

他に方法があれば教えてください。ありがとう

4

2 に答える 2

23

変数を静的メンバー変数として宣言し、参照するときにその名前の前にドル記号を付ける必要があります。

class StaticSettings{
    private static $arrErr = array();
    function setkey($key,$value){
        self::$arrErr[$key] = $value;
    }
}

次のようにインスタンス化します。

$o = new StaticSettings;
$o->setKey( "foo", "bar");
print_r( StaticSettings::$arrErr); // Changed private to public to get this to work

このデモで動作することがわかります。

于 2012-08-03T12:52:54.313 に答える
0

$arrErrあなたのコードは静的メンバー変数として定義されていません。次のように宣言する必要があります

<?php
class StaticSettings{
    public static $arrErr = array();

    function setkey($key,$value){
        self::arrErr[$key] = $value;
    }
}
?>
于 2012-08-03T12:55:07.513 に答える