2016-02-14 137 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

相關問題