代码之家  ›  专栏  ›  技术社区  ›  Benj

PHP静态类Array[]运算符?

  •  0
  • Benj  · 技术社区  · 13 年前

    我需要在一个静态PHP类中实现方括号(数组运算符)。

    主要目标是在最后进行这样的类调用:

    MyStaticClass[ $something ] = $somethingElse ;
    $SomeVar = MyStaticClass[ $something ] ;
    

    我知道这是异端,但我真的需要它。。。

    知道吗?

    我想知道是否有可能给这样的接线员打一个静态电话,因为我在网上什么都没找到。

    感谢您的帮助:)

    2 回复  |  直到 13 年前
        1
  •  1
  •   Baba    13 年前

    [] 只能重载变量和方法

    示例类

    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"]);
    
        2
  •  1
  •   Community Mohan Dere    9 年前

    我认为你不需要让接线员超负荷工作。

    如果我理解你的问题,你想访问和修改MyStaticClass中的字段吗?

    然后执行以下操作:

    MyStaticClass::$something = $somethingElse ;
    $SomeVar = MyStaticClass::$something ;
    

    只需确保在类定义中将静态属性设置为public即可。

    PHP不像C++那样真正支持运算符重载:

    http://www.php.net/manual/en/language.oop5.overloading.php

    Is it possible to overload operators in PHP?

    推荐文章