将变量名转换为大写

问题描述 投票:0回答:4

是否可以将变量名转换为大写?变量本身而不是变量的内容。

例如:

  $name = "Jam"
  $data = function ?($name);

使得 $data 包含“NAME”。 $name 在函数中作为变量传递,可以是 $name 或 $game 或任何东西。

我正在尝试将变量名称大写。 无论如何,有没有可以用PHP实现的。

  strtoupper($name)
  -->Output : JAM

这不是我想要的;我需要变量本身大写。

php variables uppercase
4个回答
2
投票

如果您希望所有字符串都大写,但如果您只想字符串的第一个字母大写,则可以使用 php strtoupper() ucfirst()


0
投票

“... $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;

0
投票

您可以使用 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 中获取字符串形式的变量名称?.


-1
投票
<?php

$name = 'Jam';
$vars = get_defined_vars();

foreach ($vars as $key => $var) {
    if ($var == 'Jam') {
        $data = strtoupper($key);
    }
}

echo $data;
© www.soinside.com 2019 - 2024. All rights reserved.