Hi我想创建一个函数,在其中我可以传递一个变量,并将变量的名称及其值输出为字符串。类似这样的东西:
$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_defined_vars()
您可以var_dump它将显示您定义的所有变量。然后,您可以循环并转储每个值。
http://php.net/get_defined_vars
这次我能想到的唯一最简单的方法是使用$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);
输出:
Var name: firstname_my , has: John
Var name: lastname_my , has: Doe
假设有两个变量具有相同的
$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);