0

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

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()、特にインスタンスが多数ある場合は、あまり効率的ではありません。

4

2 に答える 2

2

リフレクションを使用できます。

$ref = new ReflectionObject($this);
$ref->getFileName(); // return the file where the object's class was declared
于 2008-10-14T20:33:39.303 に答える
0

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

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

于 2008-10-14T18:40:09.843 に答える