In diesen abendlichen Tutorial geht es um dynamische Variablen. Ich möchte euch heute zeigen wie man eine dynamische Variable verwenden kann. Wenn man zum Beispiel eine Anwendung für mehrere Sprachen zur Verfügung stellen möchte, 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};
?>
Ausgabe:
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 so genannter 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 man sieht ist es ganz einfach möglich eine dynamische Variable zu generieren.
Man könnte dies aber auch einfacher gestalten, indem man die unterschiedlichen Variablen in unterschiedlicher Dateien auslagert und dann anschließend über einen individuellen include() Befehl die entsprechende Sprachdatei lädt. Aber könnte man auch 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.