質問

現在、次のことができます。

class SubClass extends SuperClass {
  function __construct() {
    parent::__construct();
  }
}

class SuperClass {
  function __construct() {
    // this echoes "I'm SubClass and I'm extending SuperClass"
    echo 'I\'m '.get_class($this).' and I\'m extending '.__CLASS__;
  }
}

ファイル名( __ FILE __ を動的に評価する)に似たようなことをしたい。スーパークラスから、サブクラスが存在するファイルを知りたいです。エレガントな方法で可能ですか?

get_included_files() で何かできることはわかっていますが、特に私が多数のインスタンスを持っている場合、それはあまり効率的ではありません。

役に立ちましたか?

解決

Reflectionを使用できます。

$ref = new ReflectionObject($this);
$ref->getFileName(); // return the file where the object's class was declared

他のヒント

ええと、そうではありません。各サブクラスには、 __ FILE __ を返す明示的に実装されたメソッドが必要になります。このメソッドは、最初に継承ポイントを完全に無効にします。

また、なぜこのようなものが役立つのかについても興味があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top