2012-07-26 106 views
0

我創建一個類別列表12..20不同的類別,當他們點擊併發送一個類別,將通過代表類別數據庫中的數值..添加值變量PHP

例如:

<option value="1">Apple</option>
<option value="2">Microsoft</option>

的原因,我在數據庫中傳遞一個數值,是因爲我對網頁超過1周的語言,和我有不同的標籤文件。我想根據類別編號回顯一個php變量。

<? echo $ct_1; ?>

但爲了避免大量的if/else語句,我想知道我是否可以將號碼添加到該變量。所以,如果我循環類別是這樣的:$row['category']我想該變量添加到其他的..像這樣:

<? $category = $.'ct_'.$row['category']; echo $category; ?>

我知道這是不可能的。但我希望你能我的想法,也許有這個解決方案。

+2

其實* *是可能的。你只需要在PHP手冊中閱讀它:http://php.net/manual/en/language.variables.variable.php – hakre 2012-07-26 15:28:57

回答

4

這就是所謂的variable variables

$category = ${'ct_'.$row['category']}; 
echo $category; 

或者只是:

echo ${'ct_'.$row['category']}; 

+0

這是完美的! :D非常感謝!立即開始工作,正是我所需要的...感謝您的快速反應..我只知道它不會那麼困難..我一直試圖自己做,但我用'()'和'[] '而不是'{}'..只要看看那個..我非常接近:p – Dimser 2012-07-26 15:33:25

+0

@PhilipJensBramsted:很高興我能幫忙:-D是的,這個'{}'是用來在運行中創建字符串的PHP。 '{}'也可以在對象'$ obj - > {'prop-name'。$ x}'中使用。 – 2012-07-26 15:34:00

0

快速和骯髒的方法是使用eval

eval('$category = $ct_'. $row['category'] . ';'); 
echo $category; 

確保輸入首先消毒!

+0

然後你確定實際返回一些東西:) – hakre 2012-07-26 15:29:20

2

你可以使用eval(),但這可能會導致一些非常大的安全漏洞。

我建議使用數組來代替:

$ct = array(1 => "Apple", 2 => "Microsoft"); 
echo $ct[$row['category']]; 
3

量身定做variable variableDocs例如:

<?php $category = 'ct_'.$row['category']; echo $$category; ?> 

如果你仔細看,它幾乎identival到你:

<?php $category = $.'ct_'.$row['category']; echo $category; ?> 
       ^       ^
+0

好吧然後..我是不是很正確:P – Dimser 2012-07-26 15:46:34