In diesem abendlichen Tutorial geht es um dynamische Variablen. Ich möchte euch heute zeigen, wie Sie eine dynamische Variable verwenden können. Wenn Sie zum Beispiel eine Anwendung für mehrere Sprachen zur Verfügung stellen möchten, ist dies sehr sinnvoll. Das Tutorial ist relativ einfach gehalten, um ausschließlich die Vorgehensweise zu demonstrieren. Nachfolgend findet ihr das Beispiel.
Beispiel:
<?php
/*
* Variable Definieren
*/
$variable_de='dynamische Variable<br>';
$variable_en='dynamic variable<br>';
/*
* Sprache Definieren
*/
$sprache='de';
/*
* dynamische Variable Definieren
*/
$ausgabe='variable_'.$sprache;
/*
* Ausgabe der dynamischen Variable
*/
echo ${$ausgabe};
/*
* Sprache Definieren
*/
$sprache='en';
/*
* dynamische Variable Definieren
*/
$ausgabe='variable_'.$sprache;
/*
* Ausgabe der dynamischen Variable
*/
echo ${$ausgabe};
?>
Ausga
Ergebnis:
dynamische Variable
dynamic variable
Erklärung:
In der Zeile fünf und sechs werden die Variablen definiert für die unterschiedlichen Sprachen. In der Zeile zehn wird in der Variable $sprache ein sogenannter Prefix für die Sprache deklariert. In der Zeile vierzehn wird die dynamische Variable generiert. In der Zeile achtzehn gebe ich mit dem Echo-Befehl die dynamische Variable ${ausgabe} aus. Im nachfolgenden Abschnitt das entsprechende Beispiel für die andere Sprache. Wie Sie sehen ist es ganz einfach möglich eine dynamische Variable zu generieren.
Sie könnten dies aber einfacher gestalten, indem Sie die unterschiedlichen Variablen weiteren unterschiedlichen Dateien auslagert und dann anschließend über einen individuellen include() Befehl die entsprechende Sprachdatei lädt. Aber könnten Sie ein mehrdimensionales Array verwenden, nachfolgend noch ein kleines Beispiel.
Beispiel:
<?php
/*
* Definieren eines mehrdimensionalen Array
*/
$sprachen=array(
'de'=>array(
'name'=>'Fahrrad',
'farbe'=>'rot'
),
'en'=>array(
'name'=>'bike',
'farbe'=>'red'
),
);
/*
* Prüfen ob das Array vorhanden ist
*/
if(is_array($sprachen)==true){
foreach($sprachen as $key =>$value){
foreach($value as $kk =>$vv){
/*
* definieren der dynamischen Variablen
*/
$a=$kk.'_'.$key;
/*
* der dynamischen Variablen einen Wert
* zuweisen
*/
${$a}=$vv;
}
}
}
/*
* Deutsche Ausgabe
*/
echo '<i>Deutsche Ausgabe:</i><br>';
echo 'Das '.$name_de.' ist '.$farbe_de.'.';
/*
* Englische Ausgabe
*/
echo '<br><i>Englische Ausgabe:</i><br>';
echo 'The '.$name_en.' is '.$farbe_en.'.';
?>
Ausgabe:
Deutsche Ausgabe:
Das Fahrrad ist rot.
Englische Ausgabe:
The bike is red.
Erklärung:
Im oberen Abschnitt wird in der Variable $sprachen ein mehrdimensionales Array gespeichert. Anschließend wird mit zwei foreach() Schleifen die Variablen zusammengebaut und ein Wert zugewiesen. Anschließend werden mit echo die zusammengebauten Variablen wieder ausgegeben.