我需要在静态PHP类中实现方括号(数组运算符)。
主要目标是在最后进行这样的类调用:
MyStaticClass[ $something ] = $somethingElse ;
$SomeVar = MyStaticClass[ $something ] ;
我知道这是一个异端邪说,但我真的需要它......
知道吗?
我想知道是否可以对这样的运算符进行静态调用,因为我在网络上什么也没找到。
感谢您的所有帮助:)
[]
不能重载只有变量和方法
示例类
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"]);
我认为您不需要重载运算符。
如果我理解您的问题,您希望能够访问和修改 MyStaticClass 中的字段?
然后这样做:
MyStaticClass::$something = $somethingElse ;
$SomeVar = MyStaticClass::$something ;
只需确保静态属性在类定义中设置为公共即可。
PHP 并不像 C++ 那样真正支持运算符重载:
http://www.php.net/manual/en/language.oop5.overloading.php
是否可以在 PHP 中重载运算符?