我需要在一个静态PHP类中实现方括号(数组运算符)。
主要目标是在结束时有类似这样的类调用:
MyStaticClass[ $something ] = $somethingElse ;
$SomeVar = MyStaticClass[ $something ] ;我知道这是异端,但我真的需要它...
有什么想法吗?
我想知道是否有可能对这样的操作员进行静态调用,因为我在web上什么都没有找到。
感谢您的每一个帮助:)
发布于 2012-09-27 16:27:40
[]不能只重载变量和方法
示例类
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)PHP5.4中的
function MyStaticClass()
{
return MyStaticClass::$somthing ;
}
var_dump(MyStaticClass()["somthingElse"]);发布于 2012-09-27 16:27:17
我不认为你需要超载操作员。
如果我理解您的问题,您希望能够访问和修改MyStaticClass中的字段?
然后执行以下操作:
MyStaticClass::$something = $somethingElse ;
$SomeVar = MyStaticClass::$something ;只需确保在类定义中将静态属性设置为public即可。
PHP并不像C++那样真正支持操作符重载:
https://stackoverflow.com/questions/12617046
复制相似问题