Navigation
 Startseite
 Fachbücher
 Anzeigenmarkt
 Forum
 Webmaster News
 Script Newsletter
 Kontakt
 Script Installation
 Php
 Php Tutorials
 Webhoster Vergleich
 Impressum

Community-Bereich
 kostenlos Registrieren
 Anmelden
 Benutzerliste

Script Datenbank
 Script Archiv
 Script Top 20
 Screenshots
 Testberichte

Suche
 

Unsere Php Scripts
 Counter Script
 Umfrage Script
 Bilder Upload Script
 Terminverwaltung
 Simple PHP Forum
 RSS Grabber

Script Mods
 phpBB Adsense Mode

Tools und Generatoren
 .htpasswd Generator
 md5 Generator
 base64 Generator
 Markdown to HTML
 Colorpicker
 Unix timestamp Tool
 TLD Liste
 Webkatalog‑Verzeichnis

Partner
 Sprüche Treff

Hosterplus.de
Bekommen Sie Speicherplatz (Webspace), Domains...
https://www.Hosterplus.de
Artfiles.de
Bietet Serviceorientierte...
https://www.Artfiles.de
 
 
 

Dynamische Variablen in PHP

Sie befinden sich: Home > Php Tutorial > Dynamische Variablen in PHP

Dynamische Variablen in PHP


Eintrag am:  19.11.2011
Hits / Besucher:  15184
Sprache:  Deutsch
Kategorie:  Einsteiger Tutorials
Tutorial Art:  eigenes
Eingetragen von   schubertmedia schubertmedia
 
Beschreibung

Dynamische Variablen (auch Variable Variables genannt) ermöglichen es, den Namen einer Variable zur Laufzeit zusammenzusetzen. Das kann in bestimmten Situationen praktisch sein, etwa wenn Sie eine Anwendung für mehrere Sprachen bereitstellen möchten. In diesem Tutorial zeigen wir Ihnen anhand einfacher Beispiele, wie Sie dynamische Variablen in PHP einsetzen können.

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

Ergebnis:

dynamische Variable

dynamic variable

Erklärung:

Zuerst werden zwei Variablen $variable_de und $variable_en definiert, die jeweils den Text in einer bestimmten Sprache enthalten. In $sprache wird ein Kürzel wie de oder en gespeichert. Daraus setzt $ausgabe = 'variable_' . $sprache; den vollständigen Variablennamen zusammen. Mit ${$ausgabe} greift PHP auf die passende Variable zu und gibt sie per Echo-Befehl aus. Im zweiten Abschnitt des Codes wird das gleiche Prinzip für die englische Sprache wiederholt.

Eine Alternative wäre, die unterschiedlichen Variablen in separate Sprachdateien auszulagern und dann über einen passenden include() Befehl die entsprechende Sprachdatei einzubinden. Alternativ können Sie 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 $sprachen ein mehrdimensionales Array mit den Übersetzungen gespeichert. Mit zwei verschachtelten foreach() Schleifen werden daraus dynamische Variablennamen wie $name_de oder $farbe_en erzeugt und mit Werten belegt. Anschließend lassen sich diese Variablen direkt per echo ausgeben.

Hinweis zur modernen PHP-Entwicklung

Dynamische Variablen ($$var) sollten mit Bedacht eingesetzt werden. In modernem PHP sind assoziative Arrays oder Objekte oft die bessere Wahl, weil sie übersichtlicher sind und von der IDE unterstützt werden. Statt ${$ausgabe} können Sie beispielsweise $texte[$sprache] verwenden. Das erfüllt den gleichen Zweck und ist leichter nachvollziehbar.

 

Tags:

 

Bücherregal mit drei Büchern: 'PHP 4 - Grundlagen und Profiwissen' von Hanser Verlag, 'Webdesign in a Nutshell' von O'Reilly Verlag, und 'Webgestaltung' von Galileo Computing.