我需要在静态PHP类中实现方括号(数组运算符)。
主要目标是在最后进行类调用:
MyStaticClass[ $something ] = $somethingElse ;
$SomeVar = MyStaticClass[ $something ] ;
我知道这是一种异端,但我确实需要它......
有什么想法吗?
我想知道是否可以静态调用这样的运算符,因为我在网上找不到任何内容。
感谢您的帮助:)
答案 0 :(得分:1)
我认为你不需要重载操作符。
如果我理解您的问题,您希望能够访问和修改MyStaticClass中的字段吗?
然后这样做:
MyStaticClass::$something = $somethingElse ;
$SomeVar = MyStaticClass::$something ;
只需确保在类定义中将静态属性设置为public。
PHP并不像C ++那样真正支持运算符重载:
答案 1 :(得分:1)
[]
不能只重载变量和方法
样本类
class MyStaticClass
{
static public $somthing = array("somthingElse"=>"Hello Benj") ;
}
直接致电
var_dump(MyStaticClass::$somthing["somthingElse"]);
您也可以使用
$MyStaticClass = MyStaticClass::$somthing ;
var_dump($MyStaticClass["somthingElse"]);
两者都会输出
string 'Hello Benj' (length=10)
在PHP 5.4中
function MyStaticClass()
{
return MyStaticClass::$somthing ;
}
var_dump(MyStaticClass()["somthingElse"]);