1

重複の可能性:
PHP: 新しく作成されたオブジェクトでメソッドをチェーンする方法は?

インスタンスを作成し、次の方法でそのメソッドを呼び出すことができます。

$newObj = new ClassName();
$newObj -> someMethod();

しかし、より短い表記、匿名インスタンスでそれを行う方法はありますか? 私はこれを試しました:

(new ClassName())->someMethod();

しかし、期待どおりに機能していないようです。

追加情報: 呼び出したいメソッドは公開されていますが、静的ではありません。

4

3 に答える 3

5

PHP 5.4 でサポートされています。

更新できない場合は、次のような回避策があります。

function yourclass($param) {
   return new yourclass($param);
}

yourclass()->method();

コンストラクターがしなければならないことを忘れないでくださいreturn $this;

于 2012-03-13T19:21:45.257 に答える
3

私が知っていることではありません。

だが!-シングルトンパターンを実装してから、次のコマンドを呼び出すことができます。

ClassName::getInstance()->someMethod();

または、短くするために;)

ClassName::gI()->someMethod();

someMethodが$thisを参照していない場合は、静的関数として定義されていませんが、単純に静的関数として呼び出すこともできます。

ClassName::someMethod();
于 2012-03-13T19:19:37.087 に答える
0

メソッドが静的で、クラス変数に依存していない場合 (おそらく、整理する目的でクラスに配置した可能性があります)、phil が getInstance でデモを行っているように、単純に静的に呼び出すことができます。

ClassName::someMethod()
于 2012-03-13T19:23:10.920 に答える