Maison  >  Article  >  développement back-end  >  Comment obtenir le nom d'une variable via php

Comment obtenir le nom d'une variable via php

jacklove
jackloveoriginal
2018-06-09 14:45:245494parcourir

En PHP, toutes les variables sont stockées dans la structure HastTable de "Symbol Table" La portée d'un symbole est associée à la table des symboles active. Par conséquent, il n’existe qu’une seule table de symboles active à la fois.

Nous pouvons obtenir la table des symboles actifs actuels via la méthode get_défini_vars.

get_defined_vars // 返回所有已定义的变量所组成的数组


Trouvez le nom de la variable en fonction de sa valeur, mais sachez que des variables avec la même valeur peuvent exister.

Par conséquent, enregistrez d'abord la valeur de la variable actuelle dans une variable temporaire, puis attribuez une valeur unique à la variable d'origine afin de retrouver le nom de la variable. nom, enregistrez la valeur de la variable temporaire. La valeur est réaffectée à la variable d'origine.

Exemple 1 :

<?php
$a = &#39;100&#39;;
echo &#39;$a name is:&#39;.get_variable_name($a).&#39; value:&#39;.$a; // $a name is: a value: 100
/**
* @param String $var   要查找的变量
* @param Array  $scope 要搜寻的范围
* @param String        变量名称
*/
function get_variable_name(&$var, $scope=null){
	$scope = $scope==null? $GLOBALS : $scope; // 如果没有范围则在globals中找寻
	// 因有可能有相同值的变量,因此先将当前变量的值保存到一个临时变量中,然后再对原变量赋唯一值,以便查找出变量的名称,找到名字后,将临时变量的值重新赋值到原变量
	$tmp = $var;
	
	$var = &#39;tmp_value_&#39;.mt_rand();
	$name = array_search($var, $scope, true); // 根据值查找变量名称
	$var = $tmp;
	return $name;
}
?>

Exemple 2 : Obtenir le nom de la variable défini dans la fonction

<?php
function test(){
$a = &#39;100&#39;;
echo &#39;$a name is:&#39;.get_variable_name($a);
}
test(); // $a name is: undefined
//因为在function中定义的变量globals会找不到
function test2(){
$a = &#39;100&#39;;
echo &#39;$a name is:&#39;.get_variable_name($a, get_defined_vars());
}
test2(); // $a name is: a 
// 将scope设定为 get_defined_vars() 可以找到
?>

Cet article explique comment obtenir le nom d'une variable via php Pour plus de contenu connexe, veuillez faire attention au site Web chinois de php.

Recommandations associées :

En savoir plus sur le clonage d'objets PHP

À propos des opérations liées au journal général MySQL

Introduction à la classe d'opération des cookies php

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