在PHP中不可能使用静态数组属性吗?

use*_*076 11 php static class

下面是我在php中的代码,我收到错误:

解析错误:语法错误,第4行/LR_StaticSettings.php中的意外'['

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

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

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

如果有其他方式,请告诉我.谢谢

nic*_*ckb 23

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

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

你可以像这样实例化它:

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

您可以在此演示中看到它.