0

渡された変数のタイプをジェネリックオブジェクトとして定義する必要がありますが、どうすればよいですか?

試した:

public function set($service = null, (object) $instance) {
    [..]
}

助けることができstdClassますか?どのように?

ありがとう!

4

3 に答える 3

1

いいえ、オブジェクトは何らかのクラスでなければなりません。オブジェクトのタイプとして任意のクラス名を指定できます

public function set($service = null, ClassName $instance) {
    //now the instance HAS to be the object of the class
}

または、基本的なトリックは、基本的なクラスを自分で作成することです

Class GenericObject {}
$myobj = new GenericObject();
$myobj -> myCustomVar = 'my custom var';

//Now send it
public function set($service = null, GenericObject $instance) {
   [...]
}
于 2012-04-09T23:37:54.437 に答える
1

いいえ、php では、すべてのクラスが共通の祖先から派生しているわけではありません。

したがって、現在のphpの実装を使用して「任意のクラスのオブジェクト」を指定できるとは思えません

于 2012-04-09T23:35:59.150 に答える
0

ガブリエル、

変数がオブジェクトかどうかを確認したい場合は、次のようにします。

public function set($service = null, $instance) {
    if (!is_object($instance)) return null; //or whatever
    [..]
}

それで何を防ごうとしているのですか?宣言では、変数がオブジェクトでない場合に例外が発生します (キャストされません)。

于 2012-04-09T23:40:31.017 に答える