2013-06-06 19 views
21

連接字符串創建變量名我有陣列的文件questions.php如下:通過在PHP

$question12 = array("Which is the tallest mountain","Mt Everest"); 

我正在如下使用該文件中的另一文件:

require_once('questions.php'); 
$var = 12; 
$question = '$question'.$var.'[0]'; 
echo $question; 

的上面的代碼只是輸出

$question12[0] 

但我想要變量$ question有字符串存在於$ question12 [0]

該怎麼做.. ??不建議

+0

只需使用$ question12 [0] –

+0

爲什麼不只是使用$ question12 [0] – amrinder007

+0

當然...直接使用$ question12 [0] works..but但那不是那個點.. 我想生成一個PHP變量..和我卡住.. – Pradeep

回答

50

可變的變量,但得到的答覆是如下:

$question = ${'question'.$var}[0]; 
+3

http:/ /php.net/manual/en/language.variables.variable.php –

+7

爲什麼變量變量不推薦? – piersb

+0

@Piersv可能是因爲取消引用一個數組的變量屬性在PHP 5和PHP 7之間具有不同的語義,並且可以使用數組來避免這種情況。我沒有看到其他缺點。 – Adam

1

只需使用$ question12 [0]。它會給你想要的輸出。

用$ var你可以像這樣做: -

$question = ${'question'. $var}[index];

0

您正在尋找變量變量。

$id = 12; 
$q = "question{$id}"; 
$q = $$q[0]; 

您應該認真考慮查看多維數組以停止使用多個數組。

2

對不起,我去弄點恨提東西evil但仍是選項

一個
<?php 
$question12 = array("Which is the tallest mountain","Mt Everest"); 
$var = 12; 
$question = '$question'.$var.'[0]'; 
eval("echo $question;"); 
?> 

PS:eval()evil

+4

'rename_function('eval','evil');'現在ypu可以使用函數'evil' –

+1

哈哈!笑話旁白雖然,eval是相當不好:) –

+0

雖然不要使用它:) –