ホームページ >バックエンド開発 >PHPチュートリアル >PHP 変数の名前を文字列として取得するにはどうすればよいですか?

PHP 変数の名前を文字列として取得するにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-12-25 00:53:12180ブラウズ

How Can I Retrieve a PHP Variable's Name as a String?

PHP での変数名の取得

変数名を文字列として取得することは、特定のシナリオでは役立つテクニックとなる可能性があります。 PHP はこの機能を直接サポートしていませんが、創造的なソリューションを使用して目的の結果を達成することは可能です。

指定された PHP コードでは、$FooBar という名前の変数が文字列値に割り当てられています。タスクは、変数が渡されたときに変数名を「FooBar」として出力する print_var_name() という関数を作成することです。

提案されたソリューションでは、debug_backtrace() 関数を利用してコール スタックを分析します。関数が呼び出されたコード行を識別し、ソース ファイルから対応するコード行を取得します。正規表現を使用して、この関数は行から変数名を抽出します。

function varName($v) {
    $trace = debug_backtrace();
    $vLine = file(__FILE__);
    $fLine = $vLine[$trace[0]['line'] - 1];
    preg_match("#\$(\w+)#", $fLine, $match);
    print_r($match);
}

このソリューションは、コール スタックとソース コードで利用可能な情報を活用することで機能します。これにより、print_var_name() 関数に渡された値に関連付けられた変数名を取得できます。ただし、変数名が関数が呼び出される行の唯一の変数であることを前提としています。複雑なコード シナリオでは必ずしもそうであるとは限りません。

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

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