PHP 静态类 Array[] 运算符



我需要在静态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 中重载运算符?

相关内容

最新更新