下面是我在php中的代码,我收到错误:
解析错误:语法错误,第4行/LR_StaticSettings.php中的意外'['
<?php
class StaticSettings{
function setkey ($key, $value) {
self::arrErr[$key] = $value; // error in this line
}
}
?>
我想静态地使用$this->arrErr[$key]
,这样我就可以在不创建实例/对象的情况下获取和设置静态属性。
为什么会出现这个错误?我们不能创建静态数组吗?
如果还有其他方式,请告诉我。感谢
答案 0 :(得分: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
您可以在this demo中看到它。
答案 1 :(得分:0)
您的代码未将$arrErr
定义为静态成员变量。你应该声明它为
<?php
class StaticSettings{
public static $arrErr = array();
function setkey($key,$value){
self::arrErr[$key] = $value;
}
}
?>