2016-02-14 90 views
1

是否可以将字符串变量转换为大写字母。变量本身而不是变量的内容。将字符串变量转换为大写字母php

例如: -

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

,使得$数据包含 “NAME”。 $ name在函数中作为变量传递,可以是$ name或$ game或任何其他内容。 事实是,我正在尝试变量名的大写。 反正可以在php中实现。

strtoupper($name) 
    -->Output : JAM 

这不是我想要的,我需要变量被大写。我将不胜感激任何形式的协助。

+0

为什么你想这样做呢? – Matt

+0

@Matt 我有来自数据库的字段映射到我的属性,所以我想降低案例... –

回答

0

您可以使用PHP strtoupper()功能:

CODE

<?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 

How to get a variable name as a string in PHP?改编。

+0

@UmarAftab这是你在找什么? – Panda

+0

@Matt这就是这个 –

+0

@Matt Yup,起初我写错了输出 – Panda

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

@Umar Aftab:有趣,我不知道,但请检查最后一个帖子:http://forums.phpfreaks。com/topic/3815-convert-variable-name-into-string/ – smozgur

+0

我不认为这个工程 – Panda

+0

有趣,但它的工作原理。 – smozgur

0
<?php 

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

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

echo $data; 
0

你可以使用PHP strtoupper(),如果你想你的字符串是在大写的,但如果你想只有字符串的第一个字母为大写ucfirst()

+0

OP想要转换变量名称本身而不是变量内容 – 2017-07-04 23:09:52

相关问题