静态数组属性在php中不可能吗?

静态数组属性在php中不可能吗?,php,class,static,Php,Class,Static,下面是我用php编写的代码,我发现了一个错误: 分析错误:语法错误,第4行/LR_StaticSettings.php中出现意外的“[” 我想静态地使用not$this->arrrr[$key],这样我就可以在不创建实例/对象的情况下获取和设置静态属性 为什么会出现这个错误?我们不能创建静态数组吗 如果有其他方法,请告诉我。谢谢您需要将该变量声明为静态成员变量,并在引用时在其名称前加上美元符号: class StaticSettings{ private static $arrErr

下面是我用php编写的代码,我发现了一个错误:

分析错误:语法错误,第4行/LR_StaticSettings.php中出现意外的“[”


我想静态地使用not
$this->arrrr[$key]
,这样我就可以在不创建实例/对象的情况下获取和设置静态属性

为什么会出现这个错误?我们不能创建静态数组吗


如果有其他方法,请告诉我。谢谢

您需要将该变量声明为静态成员变量,并在引用时在其名称前加上美元符号:

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

您可以看到它在中工作。

您的代码没有将
$arrrr
定义为静态成员变量。您应该将其声明为

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

    function setkey($key,$value){
        self::arrErr[$key] = $value;
    }
}
?>


<代码> >您的代码没有定义“代码> $ARRRR < /代码>作为静态成员变量。您应该将其声明为“代码>公共静态$ARRRR=ARARY();< /代码>没有投票的理由。我发现这个问题对我有帮助。所以,请表决。OP应该考虑接受回答。谢谢。我错过了$标志。现在它正在工作。<代码>类静态设置。{private static$arrrr=array();function setkey($key,$value){self:$arrrr[$key]=$value;}}
。这是我愚蠢的错误。在php中,不需要定义变量。我们只需简单地使用它。不需要编写,
private static$arrr=array();
@user1463076-这不是真的。如果忽略它。
<?php
class StaticSettings{
    public static $arrErr = array();

    function setkey($key,$value){
        self::arrErr[$key] = $value;
    }
}
?>