首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP静态类Array[]操作符?

问PHP静态类Array[]操作符?
EN

Stack Overflow用户
提问于 2012-09-27 16:25:07
回答 2查看 404关注 0票数 0

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

主要目标是在结束时有类似这样的类调用:

代码语言:javascript
复制
MyStaticClass[ $something ] = $somethingElse ;
$SomeVar = MyStaticClass[ $something ] ;

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

有什么想法吗?

我想知道是否有可能对这样的操作员进行静态调用,因为我在web上什么都没有找到。

感谢您的每一个帮助:)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-09-27 16:27:40

[]不能只重载变量和方法

示例类

代码语言:javascript
复制
class MyStaticClass
{
    static public $somthing = array("somthingElse"=>"Hello Benj") ;
}

直接调用它

代码语言:javascript
复制
var_dump(MyStaticClass::$somthing["somthingElse"]);

您还可以使用

代码语言:javascript
复制
$MyStaticClass = MyStaticClass::$somthing ;
var_dump($MyStaticClass["somthingElse"]);

他们两个都会输出

代码语言:javascript
复制
string 'Hello Benj' (length=10)

PHP5.4中的

代码语言:javascript
复制
function MyStaticClass()
{
    return MyStaticClass::$somthing ;
}

var_dump(MyStaticClass()["somthingElse"]);
票数 1
EN

Stack Overflow用户

发布于 2012-09-27 16:27:17

我不认为你需要超载操作员。

如果我理解您的问题,您希望能够访问和修改MyStaticClass中的字段?

然后执行以下操作:

代码语言:javascript
复制
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?

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12617046

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档