質問

その派生クラス名から静キーワード?私が実際に行いたいです。

くの派生クラス
チェック訳を行っているにも指定されたクラスにな

私は静的手法の基底クラスと言い、その名前 Base::check() したい Base::check() チェックの存在はインタフェースの実装されます。の確認()メソッドの名前を知って、インターフェース。思うが必要だからです。

ものがない場合は取得DerivedClassName静キーワードでのクラス名の方からの外側の世界です。ではないですが好ましいコーディング原則とします。

他の代替によって全然違います。できること ::instance() 静的手法を返します this いをすることができget_classから復帰します。もtweeksアダプタのご使用を原則とします。

では最初のメソッドも可能ですか?やまくいのこの種類のものですか?はないその他の種類の選択肢?

役に立ちましたか?

解決

私にはわかれば、何をしようとしているが、特に何の意味"の派生クラス名から静キーワード".チェック以下の機能がなん:

  • class_implements —を返しますインターフェースを実装して指定されたクラス
  • class_parents —の親クラスの指定されたクラス
  • is_a —Trueの場合、ただちにパージを行うオブジェクトがこのクラスはこのクラスとその親
  • is_subclass_of —Trueの場合、ただちにパージを行うオブジェクトがこのクラスとその親
  • instanceof タイプオペレーター

場合参照 遅めの静的結合, みてください


と思いきっていいようになります:

class Base
{
    public static function check()
    {
        return in_array('IFoo', class_implements(get_called_class(), FALSE));
        // or
        $instanceClassName = get_called_class();
        return new $instanceClassName instanceof IFoo;
        // or
        $reflector = new ReflectionClass(get_called_class());
        return $reflector->implementsInterface('IFoo');           
    }
}
interface IFoo {};
class Foo extends Base implements IFoo {}

var_dump( Foo::check() );
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top