1

重複の可能性:
php: 関数が呼び出された場所を特定する

my_function($class)任意のスクリプトから呼び出すことができるオートローディング関数があります。これは PHP によって呼び出され、spl_autoload_call()どこでも発生する可能性があります。my_function($class)特定の によって呼び出されたときにそれを検出するスクリプトを作成するにはどうすればよい$fileですか?

何かのようなもの:

$file = '/htdocs/project/whatever.php';
if ($caller_file == $file) {
    ...

どうすれば見つけられます$caller_fileか? この質問が紛らわしいことは理解していますが、今のところより良い言葉で表現することはできません. 理解に問題がある場合は、コメントでお知らせください。

編集(コンテキスト)オートローダーがロードするファイルがオートローダーが呼び出されるファイルと同じ場合、スクリプトに別のクラスのファイルをロードさせたいと思います。

たとえば、次のように指定します。

namespace Something;
class Random extends Random {}

それ自体をロードするのではなく、次のものがある別のファイルをロードする必要があります。

namespace Something;
class Random { ... }

言い換えると:

in で定義MyName\Classしていて、 (inside )a/class.phpでそれ自体を拡張したいが、 内で要求されたときにオートローダーが検索するようにしたい場合はどうすればよいですか?MyName\Class extends \MyName\Classa/class.php\MyName\Classb/class.phpa/class.php

4

1 に答える 1

0

debug_backtrace() を試しましたか?

于 2012-04-26T12:02:37.347 に答える