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

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

Barbara Streisand
Barbara Streisandoriginal
2024-12-21 05:35:09559parcourir

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

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

En PHP, récupérer le nom d'une variable sous forme de chaîne peut être une tâche particulière. Considérons le code suivant :

$FooBar = "a string";

Pour extraire le nom de la variable, nous pourrions généralement utiliser une fonction comme celle-ci :

print_var_name($FooBar);

En attendant que la fonction génère "FooBar", nous rencontrons un dilemme : PHP ne dispose pas nativement d'une méthode simple pour accéder aux noms de variables sous forme de chaînes.

Cependant, une solution de contournement existe. Même si ce n'est peut-être pas la solution la plus efficace, elle permet de récupérer les noms de variables dans certaines conditions spécifiques :

<?php

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, varName(), fonctionne en analysant la ligne qui l'a invoquée, en recherchant l'argument passé dans l'appel de fonction. Bien qu'elle puisse être personnalisée pour gérer plusieurs arguments, il est important de noter que cette solution de contournement a ses limites. Pour des scénarios plus complexes, des solutions alternatives peuvent s’avérer plus adaptées. Néanmoins, il propose une méthode pour récupérer les noms de variables en PHP pour des cas d'utilisation limités.

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