ホームページ >バックエンド開発 >PHPチュートリアル >PHP で呼び出し関数の名前を確認するにはどうすればよいですか?

PHP で呼び出し関数の名前を確認するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-04 09:53:10203ブラウズ

How to Determine the Calling Function's Name in PHP?

PHP での呼び出し関数の名前の決定

Java や C などの言語とは異なり、PHP は特別に設計された組み込み関数を提供しません。呼び出し元の関数またはメソッドの名前を取得します。ただし、debug_backtrace() 関数を使用してこれを実現する方法があります。

debug_backtrace() の使用

debug_backtrace() 関数は、次の情報を含む配列の配列を返します。現在の関数呼び出しとすべての親関数呼び出し。呼び出し関数の名前を取得するには、debug_backtrace() によって返された配列内の 2 番目の項目にアクセスします。これにより、現在の関数を呼び出した関数に関する情報が提供されます。

例:

echo debug_backtrace()[1]['function'];

このコードは、呼び出し元の関数の名前を出力します。

debug_backtrace() の最適化

パフォーマンスを最適化するには、返されるスタック フレームの数を制限し、不要な情報を省略できます。たとえば、次のコードは関数名のみを返し、オブジェクトと引数のインデックスの両方を省略します。

echo debug_backtrace(!DEBUG_BACKTRACE_PROVIDE_OBJECT|DEBUG_BACKTRACE_IGNORE_ARGS,2)[1]['function'];

呼び出しメソッドのクラスの取得

クラスを決定するには呼び出しメソッドの場合は、debug_backtrace() 配列内のオブジェクト インデックスを検査する必要があります。このインデックスには、メソッドが呼び出されたオブジェクトに関する情報を含む配列が含まれています。

例:

$className = debug_backtrace()[1]['object']['class'];

これらの手法を組み合わせることで、両方のメソッドを取得できます。 PHP の呼び出し関数またはメソッドの名前とクラス。

以上がPHP で呼び出し関数の名前を確認するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。