Maison >développement back-end >tutoriel php >Comment puis-je obtenir le nom d'une variable PHP sous forme de chaîne ?

Comment puis-je obtenir le nom d'une variable PHP sous forme de chaîne ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-16 02:19:13894parcourir

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

Obtenir des noms de variables sous forme de chaînes en PHP

En PHP, accéder au nom d'une variable sous forme de chaîne peut être utile dans divers scénarios. Voici une solution potentielle :

L'extrait de code fourni montre une fonction appelée varName() qui récupère le nom d'une variable passée :

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);

Cette fonction utilise debug_backtrace() de PHP pour obtenir le trace de la fonction appelante. Il lit ensuite le fichier de code source associé à la trace et extrait la ligne contenant l'appel de fonction à l'aide de file(__FILE__).

Pour extraire le nom de la variable, il utilise une expression régulière pour correspondre au nom de la variable, qui doit commencer par un signe dollar ($) et être suivi d'un caractère de mot.

Voici le résultat de la fonction pour le fourni variables :

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

Bien que cette solution fournisse un moyen d'obtenir des noms de variables sous forme de chaînes, elle présente des limites et peut ne pas convenir à tous les cas d'utilisation. Réfléchissez attentivement à la nécessité d'extraire les noms de variables dans votre code et explorez des approches alternatives si nécessaire.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn