>  기사  >  백엔드 개발  >  PHP를 통해 변수 이름을 얻는 방법

PHP를 통해 변수 이름을 얻는 방법

jacklove
jacklove원래의
2018-06-09 14:45:245451검색

PHP에서 모든 변수는 "Symbol Table"의 HastTable 구조에 저장됩니다. 기호의 범위는 활성 기호 테이블과 연결됩니다. 따라서 한 번에 하나의 활성 기호 테이블만 있습니다.

우리는 get_define_vars 메소드를 통해 현재 활성 기호 테이블을 가져오고 싶습니다.

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


값을 기준으로 변수 이름을 찾으세요. 하지만 동일한 값을 갖는 변수가 있을 수 있다는 점에 유의하세요.

그러니 먼저 현재 변수의 값을 임시 변수에 저장한 후, 원래 변수에 고유한 값을 할당하여 변수 이름을 찾은 후 임시 변수의 값을 임시 변수에 다시 할당하세요. 원래 변수.

예제 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;
}
?>

예제 2: function

<?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() 可以找到
?>
에 정의된 변수 이름 가져오기

rrreee

이 문서에서는 PHP를 통해 변수 이름을 가져오는 방법을 설명합니다. 더 많은 관련 콘텐츠를 확인하세요. PHP 중국어 웹사이트에 주목하세요.

관련 권장사항:

PHP 객체 복제 클론에 대해 알아보기


mysql 일반 로그 관련 작업 정보


PHP 쿠키 작업 클래스 소개🎜🎜🎜

위 내용은 PHP를 통해 변수 이름을 얻는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.