string mit einer Variable zu einer Variable verbinden

Hallo,

Dennis Wronka hat gesagt.:
Und vorhin hatte ich so getestet:
PHP:
$a=5;
$b{$a}=10;
echo $b[5];
Ausgabe: 10
Und das ist ja auch mehr als ein Zeichen. Dementsprechend tendiere ich auch zu den Arrays.
Ja, in dem Fall ist $b ein waschechtes Array. Initialisiert man $b allerdings vorher mit einem String (z.B. $b = 'foobar';), so wird nur das entsprechende Zeichen mit Index $a verändert.

Wenn ich mich recht erinnere hab ich einzelne Zeichen in Strings eher wie Arrays angesprochen, also $my_string[4];
Solltest du dir aber eher abgewöhnen ;) Das ist nämlich seit PHP 4 „deprecated“ und wird nur noch wegen Kompatiblitätszwecken unterstützt.

Zum eigentlichen Thema: variable Variablennamen kann man in den allermeisten Fällen vermeiden, indem man Arrays einsetzt. Vor allem, wenn es um Variablen mit fortlaufendem Index gehen soll.

Grüße,
Matthias
 
Matthias Reitinger hat gesagt.:
Solltest du dir aber eher abgewöhnen ;) Das ist nämlich seit PHP 4 „deprecated“ und wird nur noch wegen Kompatiblitätszwecken unterstützt.
In dem Fall dann per {$i} oder so wie ich jetzt eigentlich immer mache ueber substr()?
Ist {$i} auch deprecated oder ist das okay?

Matthias Reitinger hat gesagt.:
Zum eigentlichen Thema: variable Variablennamen kann man in den allermeisten Fällen vermeiden, indem man Arrays einsetzt. Vor allem, wenn es um Variablen mit fortlaufendem Index gehen soll.
So richtig fein sind variable Variablennamen ganz sicher nicht. Und frag mich jetzt nicht warum ich mich damals bei dem Script dazu entschieden hab. Wenn ich mir das Script nochmal durchles faellt es mir ja vielleicht nochmal ein. :)
 
Jetzt bin ich von der Arbeit daheim und hab was Zeit, werd dann mal reinschauen und die Tage mal gucken ob ich irgendwelche Scripts anzupassen hab.
 
:-)
PHP:
${'data'.$i}

Quasi so...Dollarzeichen, danach das geschweifte Klammerpaar...und darin muss dann der Variablenname stehen...welcher auch Ergebnis einer String-Verkettung oder einer sonstigen PHP-Anweisung sein kann.
 
Also das hab ich probiert, ging nicht. Nochmal probiert, undzwar so:

HTML:
		$var1 = "data";
		$var2 = 2;
		$varx = ${'data'.$var2};
		$vary = ${$var1.$var2};
		echo "varx: ".$varx."<br>";
		echo "vary: ".$vary."<br>";

Wird einfach für die Variable nichts ausgegeben.
 
Sowohl der Ausdruck ${'data'.$var2} als auch ${$var1.$var2} referenzieren im genannten Kontext die Variable $data2.
 
Zurück