是否可以将变量名转换为大写?变量本身而不是变量的内容。
例如:
$name = "Jam"
$data = function ?($name);
使得 $data 包含“NAME”。 $name 在函数中作为变量传递,可以是 $name 或 $game 或任何东西。
我正在尝试将变量名称大写。 无论如何,有没有可以用PHP实现的。
strtoupper($name)
-->Output : JAM
这不是我想要的;我需要变量本身大写。
如果您希望所有字符串都大写,但如果您只想字符串的第一个字母大写,则可以使用 php strtoupper() ucfirst()
“... $name 作为函数中的变量传递...”然后它更改为函数定义中的变量名称 - 原始变量名称此时并不重要。 所以你的函数永远不知道变量的名称。 * 显然有一种方法可以做到这一点。显示在编辑*
但是,如果您想创建一个变量作为另一个变量的大写版本 - 我不知道该怎么做 - 那么这将为您做到这一点。
$name = "Jam";
${strtoupper("name")} = $name;
print $NAME;
* 编辑*:我对此一无所知,非常奇怪,是从我在评论中发布的链接转换而来的,我仍然不知道为什么可以使用它,但是:
function magicfunc($var)
{
foreach($GLOBALS as $k => $v) {
if (!is_array($k) && $v == $var) return(strtoupper($k));
}
}
$name = "1234";
${magicfunc($name)} = $name;
// Yes, we have this variable
print $NAME;
您可以使用 PHP
strtoupper()
功能:
代码
<?php
$name = 'Jam';
echo strtoupper(print_var_name($name));
function print_var_name($var) {
foreach($GLOBALS as $var_name => $value) {
if ($value === $var) {
return $var_name;
}
}
return false;
}
?>
输出
NAME
<?php
$name = 'Jam';
$vars = get_defined_vars();
foreach ($vars as $key => $var) {
if ($var == 'Jam') {
$data = strtoupper($key);
}
}
echo $data;