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