Heim > Backend-Entwicklung > PHP-Tutorial > So erhalten Sie den Namen einer Variablen über PHP

So erhalten Sie den Namen einer Variablen über PHP

jacklove
Freigeben: 2023-03-31 10:22:01
Original
5521 Leute haben es durchsucht

In PHP werden alle Variablen in der HastTable-Struktur von „Symboltabelle“ gespeichert. Der Gültigkeitsbereich eines Symbols ist mit der aktiven Symboltabelle verknüpft. Daher gibt es jeweils nur eine aktive Symboltabelle.

Wir können die aktuell aktive Symboltabelle über die Methode get_defined_vars abrufen.

get_defined_vars // 返回所有已定义的变量所组成的数组
Nach dem Login kopieren


Suchen Sie den Variablennamen anhand seines Werts. Beachten Sie jedoch, dass möglicherweise Variablen mit demselben Wert vorhanden sind.

Speichern Sie daher zunächst den Wert der aktuellen Variablen in einer temporären Variablen und weisen Sie dann der ursprünglichen Variablen einen eindeutigen Wert zu, um den Namen der Variablen zu finden Name, speichern Sie den Wert der temporären Variablen. Der Wert wird der ursprünglichen Variablen neu zugewiesen.

Beispiel 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;
}
?>
Nach dem Login kopieren

Beispiel 2: Den in der Funktion definierten Variablennamen abrufen

<?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() 可以找到
?>
Nach dem Login kopieren

In diesem Artikel wird erläutert, wie Sie den Namen einer Variablen über PHP erhalten. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website.

Verwandte Empfehlungen:

Erfahren Sie mehr über das Klonen von PHP-Objekten

Über allgemeine MySQL-Protokollvorgänge

Einführung in die PHP-Cookie-Operationsklasse

Das obige ist der detaillierte Inhalt vonSo erhalten Sie den Namen einer Variablen über PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
php
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage