2016-08-27 9 views
3

Ich versuche, die Schlüssel eines Arrays als Variablen zu extrahieren. Ich habe folgenden Code dafür:So erstellen Sie Variablen aus Array-Schlüsseln

01 | $array = [ 
02 |  "bantya" => "BANTYA", 
03 |  "sontya" => "SONTYA", 
04 |  "niltya" => "NILTYA" 
05 | ]; 
06 | 
07 | function makeVar ($array) { 
08 |  foreach ($array as $key => $value) { 
09 |   $$key = $value; 
10 |  } 
11 |  echo $bantya; 
12 | } 
13 | 
14 | makeVar($array); 
15 | echo $bantya; 

Das Problem ist, Zeile 11 Echos „BANTYA“ richtig, aber das gleiche über die Leitung 15 ist nicht wahr. Dort heißt es:

Notice: Undefined variable: bantya in file\path on line 15

Meine Frage ist, warum ist es, diesen Fehler zeigt? Wie kann ich Zeile 15 dazu bringen, global "BANTYA" auszugeben (was außerhalb des Bereichs von function makeVar($array) liegt), nachdem makeVar die Funktion deklariert wurde?

Vielen Dank im Voraus ..

+4

Woops. Verwenden Sie 'extract()': http://php.net/manual/en/function.extract.php – Bailey

+0

Dies scheint nutzlos. Sie können 'BANTYA' immer noch durch' echo $ array ['bantya'] ' –

+0

Zuweisen zu' $ GLOBALS [$ key] 'anstelle von' $$ key', um eine globale Variable zu erstellen. Oder benutze 'extract()'. – Barmar

Antwort

1

ich denke, dass ist hilfreich ist. Verwenden Sie extract() in PHP. Siehe Beispiel unten

$array = ( "bantya" => "BANTYA", "sontya" => "SONTYA", "niltya" => "NILTYA" ); extract($array); var_dump($bantya);

Und Sie neue var erhalten: $bantya, $sontya, $niltya

Verwandte Themen