2013-06-06 10 views
21

mam questions.php plików z tablicy w następujący sposób:tworzenia nazwy zmiennej przez łączenie ciągów w php

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

używam tego pliku w innym pliku w następujący sposób:

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

powyższy kod po prostu wysyła ciąg

$question12[0] 

Ale ja chcesz, aby zmienna $ question miała ciąg obecny w $ question12 [0].

Jak to zrobić ..?

+0

Wystarczy użyć $ question12 [0] –

+0

dlaczego nie po prostu użyj $ question12 [0] – amrinder007

+0

oczywiście ... bezpośrednio używając $ question12 [0] działa .. ale to nie jest to punkt .. Chcę wygenerować php zmienną .. i utknąłem .. – Pradeep

Odpowiedz

50

zmienna Zmienna nie jest zalecane, ale odpowiedź jest poniżej:

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

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

+7

Dlaczego zmienna zmiennej nie jest polecana? – piersb

+0

@Piersv może dlatego, że wyłuskiwanie właściwości zmiennej, która jest tablicą, ma inną semantykę między PHP 5 i PHP 7, a fakt, że zawsze można to obejść za pomocą tablicy. Nie widzę innych wad. – Adam

1

Wystarczy użyć $ question12 [0]. Da ci to pożądane wyjście.

Używanie $ var można zrobić to tak: -

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

0

Poszukujesz zmiennych zmiennych.

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

Powinieneś poważnie rozważyć zajrzenie do tablic wielowymiarowych, aby przestać mieć wiele tablic.

2

Niestety, im dostanie jakąś nienawiść dla wspomnieć coś evil ale nadal jest to jedna z opcji

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

PS: eval() że evil

+4

'rename_function ('eval', 'evil');' teraz ypu może używać funkcji 'evil' –

+1

haha! żartuje na bok, eval jest całkiem zły :) –

+0

Nie używaj go jednak :) –

Powiązane problemy