Php 获取字符串中变量的名称

Php 获取字符串中变量的名称,php,function,variables,Php,Function,Variables,嗨,我想创建一个函数,在这个函数中我可以传递一个变量,并将变量的名称及其值作为一个字符串输出。大概是这样的: $firstname = 'John'; $lastname = 'Doe'; echo my_function($firstname); // outputs: "Var name: firstname , has: John" echo my_function($lastname); // outputs: "Var name: lastname , has: Doe" 看看

嗨,我想创建一个函数,在这个函数中我可以传递一个变量,并将变量的名称及其值作为一个字符串输出。大概是这样的:

$firstname = 'John';
$lastname = 'Doe';

echo my_function($firstname); // outputs: "Var name: firstname , has: John"
echo my_function($lastname);  // outputs:  "Var name: lastname , has: Doe"

看看
get\u defined\u vars()

您可以使用var_转储该变量,它将显示您定义的所有变量。然后,您可以循环并转储每个值


这次我能想到的唯一最简单的方法就是使用$GLOBAL

<?php
function my_function($val) {
  foreach($GLOBALS as $name => $value) {
      if ($value == $val) {
          return "Var name: ".$name." , has: ".$val."<br>";
      }
  }
}

$first = 'John';
$firstname = 'John';
$lastname = 'Doe';
echo my_function($firstname); // outputs: "Var name: firstname , has: John"
echo my_function($lastname);
假设有两个变量具有相同的值

$first = 'John';
$firstname = 'John';
您可以修改您的代码以像这样进行区分

function my_function($val) {
   foreach($GLOBALS as $name => $value) {
       if ($value == $val && substr($name,-3) == "_my") {
          return "Var name: ".$name." , has: ".$val."<br>";
       }
   }
}

$first = 'John';
$firstname_my = 'John';
$lastname_my = 'Doe';

echo my_function($firstname_my); // outputs: "Var name: firstname , has: John"
echo my_function($lastname_my);
函数我的函数($val){
foreach($GLOBALS作为$name=>$value){
如果($value=$val&&substr($name,-3)=“我的”){
返回“变量名:”.$name.”,有:“$val.”
”; } } } $first='John'; $firstname_my='John'; $lastname_my='Doe'; echo my_函数($firstname_my);//输出:“Var name:firstname,has:John” echo my_函数($lastname_my);
可以使用,但不建议将其作为良好或合理的编码实践。。。。。如果使用
echo my_函数(“JOHN”)调用该函数,您会有什么期望?为了调试的目的,您需要这样做,然后使用真正的DebuggerRight关联这可能也有帮助:
function my_function($val) {
   foreach($GLOBALS as $name => $value) {
       if ($value == $val && substr($name,-3) == "_my") {
          return "Var name: ".$name." , has: ".$val."<br>";
       }
   }
}

$first = 'John';
$firstname_my = 'John';
$lastname_my = 'Doe';

echo my_function($firstname_my); // outputs: "Var name: firstname , has: John"
echo my_function($lastname_my);