1

重複の可能性:
関数が定義されている場所を見つける方法は?

かなり複雑なOOPPHPプロジェクトがあり、多くのクラス、ライブラリ、ヘルパーを使用できます。

デバッグ中に、特定の関数のどのインスタンスが異なるファイルまたはクラスに存在する場合に使用されているかを見つけるのが難しい場合があり、この時点までのコード全体を調べないと、どのクラスまたはライブラリが含まれていたかわかりません。

どのファイルにどの行に特定の関数が配置されているかを正確に特定するのに役立つ言語構造、関数、または外部ツール(デバッガーなど)があるかどうか疑問に思いました。

例:

moditem(25); // How I call the function usually
echo locate_function('moditem');

次のようなものを表示するには:

Function moditem() is located in file: lib/users.php, line 234.

スニペットは次のとおりです。

...
return TRUE;
}

function moditem($id){
    $modify = $this->modify($id);
    return $modify;
}
...

私のIDEには関数宣言に導く方法がありますが、同じ名前の異なるバージョンの関数を持つ20個のファイルがあると混乱します。

4

2 に答える 2

13
$ref = new ReflectionFunction('moditem');
echo $ref->getFileName();

http://php.net/reflectionfunctionおよび同様の関連するリフレクションメソッドを参照してください。

于 2012-07-17T13:22:30.713 に答える
0

通常、IDEではCTRL+CLICKを押すと、関数宣言が表示されます。

または、デバッグ出力だけが必要な場合は、関数でこれを行うことができます。

echo __FILE__ . ":" . __LINE__;

これが魔法の定数に関するドキュメントです

于 2012-07-17T13:22:06.203 に答える