php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2006

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 25.11.2006, 13:24  
Gast
 
Beiträge: n/a
Standard Variable Variabeln

Beispiel für eine variable Variabel:

PHP-Code:
 $hallo1 "alles okay";

 
$var "hallo1";

 echo 
"${$var}";

 
// Ausgabe: alles okay 

Ich möchte nun das Gleiche nach folgendem Muster machen (es soll also nur ein Teil der Variabel ersetzt werden).

PHP-Code:
 $hallo1 "alles okay";

 
$var "1";

 echo 
"${hallo$var}";
 echo 
"${hallo}{$var}";
 echo 
"${hallo{$var}}"
Keines der echo's funktioniert. Wer weiß weiter ..?
 
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 25.11.2006, 14:27  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Denk doch konsequent weiter..

PHP-Code:
<?php
$hallo1 
"alles okay";
$tmp 1;
$tmp2 "hallo$tmp";
echo $
$tmp2;
?>
Du solltest aber wissen, dass "variable Variablen" nie sinnvoll und nie notwendig sind! Wenn du schon beim Erstellen der variablen Variablen Probleme hast, dann warte mal 2 Monate ab und schau dir dann wieder deinen Quellcode an. Du glaubst doch selbst nicht, dass du dich dann noch erinnerst was was war.

Schau dir lieber Arrays an:
PHP-Code:
<?php
$hallo 
= array('null''eins''zwei');
echo 
$hallo[0]; // null
echo $hallo[1]; // eins
// ..
?>
http://de.php.net/manual/de/language.types.array.php
Zergling-new ist offline  
Alt 25.11.2006, 19:13  
Erfahrener Benutzer
 
Registriert seit: 16.07.2005
Beiträge: 1.007
PHP-Kenntnisse:
Fortgeschritten
brian johnson befindet sich auf einem aufstrebenden Ast
Standard

irgendwo hab ich mal variable vars benutzt um mir ein riesiges switch zu sparen (da war dann im form ein auswahlmenü mit über 100 einträgen).....

p.s. du kannst nur eine variable hinter $ angeben
__________________
PHP4?!?>>>Aktuelle PHP Version: 5.2.11 || 5.3.0
Suse 11.2 *vorfreude*
brian johnson ist offline  
Alt 25.11.2006, 19:38  
Moderator
 
Benutzerbild von agrajag
 
Registriert seit: 02.10.2006
Beiträge: 3.820
PHP-Kenntnisse:
Fortgeschritten
agrajag wird schon bald berühmt werdenagrajag wird schon bald berühmt werden
Standard

Zitat:
Zitat von brian johnson
irgendwo hab ich mal variable vars benutzt um mir ein riesiges switch zu sparen (da war dann im form ein auswahlmenü mit über 100 einträgen).....
Und? Wo liegt da jetzt der konkrete nutzen von "variablen Variablen"?
Hätte es nicht auch ein assoziatives Array getan?
__________________
Today you...Tomorrow me.
agrajag ist offline  
Alt 25.11.2006, 20:29  
Erfahrener Benutzer
 
Registriert seit: 16.07.2005
Beiträge: 1.007
PHP-Kenntnisse:
Fortgeschritten
brian johnson befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Agrajag
Und? Wo liegt da jetzt der konkrete nutzen von "variablen Variablen"?
Hätte es nicht auch ein assoziatives Array getan?
im select darf nur 1 ausgewählt werden

PHP-Code:

$tmpl
='<select name="select">
<option{selected1}>1</option>
<option{selected2}>2</option>
</select>'
;
$selected1='';$selected2='';

//annahme, dass 2 ausgewählt wurde
$_POST['select'][0]=2;

$temp='selected'.$_POST['select'][0];
$
$temp=' selected="selected"';

echo 
str_replace('{selected1}',$selected1,str_replace('{selected2}',$selected2,$tmpl)); 
?> 
vorteil: kürzer, schneller bei nem auswahlmenü mit über 100 möglichkeiten
dabei wars dann fürs woltlab burning board, das hat ein template system, dass mit eval arbeitet anstatt mit str_replace.
brian johnson ist offline  
Alt 25.11.2006, 21:15  
da schreibt der ElePHPant
 
Benutzerbild von Flor1an
 
Registriert seit: 18.06.2008
Beiträge: 8.903
PHP-Kenntnisse:
Fortgeschritten
Flor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer Anblick
Standard

Und genau dafür gibt es gescheite Templatesysteme ... also im Endeffekt keine zwingende Massnahme!

Bei deinem Beispiel funktioniert das ganze ebenfalls mit Arrays.

$selected[$_POST['select']] = ' selected="selected"';

echo str_replace('{selected1}', $selected[1], str_replace('{selected2}', $selected[2], $tmpl));
Flor1an ist gerade online  
Alt 25.11.2006, 21:49  
Erfahrener Benutzer
 
Registriert seit: 16.07.2005
Beiträge: 1.007
PHP-Kenntnisse:
Fortgeschritten
brian johnson befindet sich auf einem aufstrebenden Ast
Standard

ja funtzt auch mit arrays. bei php gibts eben immer mehrere möglichkeiten. ich sehe aber weder den vorteil bei einem noch beim anderen, also isses wieder wurscht.

Zitat:
Und genau dafür gibt es gescheite Templatesysteme ...
oh das template system von woltlab gefällt mir auf jeden fall! einfach die variablen in die template datei schreiben, eval drüber rennen lassen und fertisch. der ein oder andere wird zwar jetzt einwenden, dass wenn man sensible variablen dareinschreibt z.b. $password, dass das dann auch ersetzt wird, dazu sag ich aber: selbst schuld. is auf jeden fall schnell und weniger schreibarbeit :wink:
__________________
PHP4?!?>>>Aktuelle PHP Version: 5.2.11 || 5.3.0
Suse 11.2 *vorfreude*
brian johnson ist offline  
Alt 25.11.2006, 21:54  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Privat kannst du das einsetzen, aber sobald du Kollegen hast, tu ihnen den Gefallen und mute ihnen nicht sowas zu..

Das Argumente "es funktioniert" ist kein Argument, das ist eine Ausrede, schlampigen Code zu produzieren
Zergling-new ist offline  
Alt 26.11.2006, 01:57  
da schreibt der ElePHPant
 
Benutzerbild von Flor1an
 
Registriert seit: 18.06.2008
Beiträge: 8.903
PHP-Kenntnisse:
Fortgeschritten
Flor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer Anblick
Standard

Außerdem wenn du Kontrollstrukturen brauchst wie if else ... dann kannst du das mit eval auch nicht so toll lösen. Dann hast du PHP / HTML wieder gemixt und deinen eigentlichen Willen wieder verschmissen.

Vorallem wenn Templatedesigner und PHP Programmierer nicht die selbe Person sind ist es oft praktisch wenn es fürs Template eigene Regeln gibt an die sich der Templatedesigner halten muss ohne PHP zu können.

Und zum Thema variable Variablen oder Arrays kann ich nur aus Erfahrung sagen dass variable Variablen sehr sehr unübersichtlich sind! Ein $$var übersieht man gerne und bis man findet wo $var definiert ist und was dann der Wert von $$var ist braucht man einige Zeit! Bei $array[$var] ist es meist selbsterklärend! Und es lässt sich sogar noch wesentlich leichter debuggen allein durch print_r($array); oder wenn du es eben dann mal in ner Schleife brauchst oder sonst was ist es mit einem Array einfacher und schöner. Meine Meinung aus meiner Erfahrung!!!
Flor1an ist gerade online  
Alt 26.11.2006, 12:58  
Waq
Erfahrener Benutzer
 
Registriert seit: 15.08.2004
Beiträge: 2.473
Waq
Standard

echo ${'hallo'.$var};
__________________
mod = master of disaster
Waq ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Variable in Datenbankentrag asa PHP Tipps 2008 11 22.07.2008 09:51
Variable in $this Variable der Klasse benutzen PHP Tipps 2006 5 03.05.2006 20:04
variable wird nich erkannt. Marian PHP Tipps 2006 1 03.04.2006 21:25
problem mit variable snatch-ic PHP Tipps 2007 5 13.12.2005 13:18
Variable durch 2. Variable bestimmen Quagga PHP Tipps 2005-2 11 26.10.2005 17:34
Variable als Variable behandeln ohne den Wert zu verwenden Pain-maker PHP Tipps 2005-2 4 11.09.2005 17:28
Session Variable oder Globale Variable ? PHP Tipps 2005-2 3 27.06.2005 21:49
Variable in Objekt php1 HTML, Usability und Barrierefreiheit 2 25.06.2005 08:08
Variable in einer Variable Beatbox PHP Tipps 2005 7 15.01.2005 15:55
Warum wird Variable nicht übergeben??? Anuschka PHP Tipps 2005 2 06.01.2005 13:22
[Erledigt] $_SESSION verwandelt variable auf einem Server in ein Array PHP-Fortgeschrittene 2 16.12.2004 13:25
[Erledigt] Variable erst später definieren? PHP Tipps 2004-2 10 04.12.2004 20:23
2 Schleifen durchlaufen PHP Tipps 2004 1 14.09.2004 14:33
[Erledigt] Datei einlesen -&gt; in Variable schreiben PHP Tipps 2004 2 22.07.2004 11:33
variable Variablen requesten PHP Tipps 2004 5 08.06.2004 20:34

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
variablen variabeln

Alle Zeitangaben in WEZ +2. Es ist jetzt 12:58 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.