0

静的 PHP クラスに角かっこ (配列演算子) を実装する必要があります。

主な目標は、最後に次のようなクラス呼び出しを行うことです。

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

これが異端であることはわかっていますが、本当に必要なのです...

何か案が ?

ウェブ上で何も見つからなかったので、そのようなオペレーターへの静的呼び出しが可能かどうか疑問に思っています。

いつも助けてくれてありがとう:)

4

2 に答える 2

1

[]変数とメソッドのみオーバーロードできません

サンプルクラス

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"]);
于 2012-09-27T08:27:39.890 に答える
1

演算子をオーバーロードする必要はないと思います。

あなたの質問が理解できたら、MyStaticClass のフィールドにアクセスして変更できるようにしたいですか?

次に、これを行います:

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

クラス定義で静的プロパティが public に設定されていることを確認してください。

PHP は、C++ のように演算子のオーバーロードを実際にはサポートしていません。

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

PHPで演算子をオーバーロードすることは可能ですか?

于 2012-09-27T08:27:17.443 に答える