Heim >Backend-Entwicklung >PHP-Tutorial >Wie kann ich den Namen einer PHP-Variablen als String erhalten?

Wie kann ich den Namen einer PHP-Variablen als String erhalten?

Barbara Streisand
Barbara StreisandOriginal
2024-12-16 02:19:13895Durchsuche

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

Variablennamen als Strings in PHP abrufen

In PHP kann der Zugriff auf den Namen einer Variablen als String in verschiedenen Szenarien nützlich sein. Hier ist eine mögliche Lösung:

Das bereitgestellte Code-Snippet demonstriert eine Funktion namens varName(), die den Namen einer übergebenen Variablen abruft:

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

$foo = "knight";
$bar = array(1, 2, 3);
$baz = 12345;

varName($foo);
varName($bar);
varName($baz);

Diese Funktion verwendet PHPs debug_backtrace(), um die zu erhalten Spur der aufrufenden Funktion. Anschließend liest es die mit der Ablaufverfolgung verknüpfte Quellcodedatei und extrahiert die Zeile mit dem Funktionsaufruf mithilfe von file(__FILE__).

Um den Variablennamen zu extrahieren, verwendet es einen regulären Ausdruck, um mit dem Variablennamen übereinzustimmen, was erforderlich ist Beginnen Sie mit einem Dollarzeichen ($), gefolgt von einem Wortzeichen.

Hier ist die Ausgabe der Funktion für das bereitgestellte Zeichen Variablen:

Array
(
    [0] => $foo
    [1] => foo
)
Array
(
    [0] => $bar
    [1] => bar
)
Array
(
    [0] => $baz
    [1] => baz
)

Diese Lösung bietet zwar eine Möglichkeit, Variablennamen als Zeichenfolgen zu erhalten, weist jedoch Einschränkungen auf und ist möglicherweise nicht für alle Anwendungsfälle geeignet. Überlegen Sie sorgfältig, ob in Ihrem Code Variablennamen extrahiert werden müssen, und prüfen Sie gegebenenfalls alternative Ansätze.

Das obige ist der detaillierte Inhalt vonWie kann ich den Namen einer PHP-Variablen als String erhalten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn