PHP静::DerivedClassName
-
28-09-2019 - |
質問
その派生クラス名から静キーワード?私が実際に行いたいです。
くの派生クラス
チェック訳を行っているにも指定されたクラスにな
私は静的手法の基底クラスと言い、その名前 Base::check()
したい Base::check()
チェックの存在はインタフェースの実装されます。の確認()メソッドの名前を知って、インターフェース。思うが必要だからです。
ものがない場合は取得DerivedClassName静キーワードでのクラス名の方からの外側の世界です。ではないですが好ましいコーディング原則とします。
他の代替によって全然違います。できること ::instance()
静的手法を返します this
いをすることができget_classから復帰します。もtweeksアダプタのご使用を原則とします。
では最初のメソッドも可能ですか?やまくいのこの種類のものですか?はないその他の種類の選択肢?
解決
私にはわかれば、何をしようとしているが、特に何の意味"の派生クラス名から静キーワード".チェック以下の機能がなん:
class_implements
—を返しますインターフェースを実装して指定されたクラスclass_parents
—の親クラスの指定されたクラスis_a
—Trueの場合、ただちにパージを行うオブジェクトがこのクラスはこのクラスとその親is_subclass_of
—Trueの場合、ただちにパージを行うオブジェクトがこのクラスとその親instanceof
タイプオペレーター
場合参照 遅めの静的結合, みてください
get_called_class
—の"遅めの静的結合"クラス名
と思いきっていいようになります:
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() );
所属していません StackOverflow