Archiv verlassen und diese Seite im Standarddesign anzeigen : PHP: Variable mittels Index hochzählen?
ooAlbert
2007-04-19, 11:08:59
Hi,
ist es möglich einen variablennamen mit einem vaibalen index zu versehen?
beispiel:
ich habe $abc1a, ..., $abc10a;
jetzt wollt ich die alle mittels for-schleife hochzählen und bearbeiten... deshalb dachte ich an sowas wie: $abc.$zaehler.a; (das geht so natürlich nicht :) )
mfg
Unfug
2007-04-19, 11:19:47
Zur Laufzeit eine Variable erstellen geht nicht.
ooAlbert
2007-04-19, 11:28:41
naja das problem ist halt das der index mitten im namen steht. außerdem sind die werte schon in den teilvariablen, also die gibt es bereits.
Unfug
2007-04-19, 11:29:18
Vielleicth so?
<?
$i = 0;
$daten = array();
$foo = "bar";
while ($i<10)
{
array_push($daten, $foo.$i);
$i++;
}
print_r($daten);
?>
???
edit: ich merke grad das ist schwachsinnig. ich übergebe ja nur die "Werte" an das Array und nicht die Variablen selbst...
Sorry, kann dabei nicht weiterhelfen.
ooAlbert
2007-04-19, 12:27:05
also ich hab mal etwas gesucht und dann sowas gefunden:
$b = ${$a.$c} ... hat aber nicht gefruchtet, oder ich amch das halt falsch.
P2oldi
2007-04-19, 13:06:48
aber wäre es nicht trotzdem eine Möglichkeit ein zwei-dimensionales Array zu definieren, meinetwegen abc[10][26]. Dann würde abc[0][0] abc1a entsprechen, abc[9][25] halt abc10z. Ist zwar von den Namen dann nicht mehr so eindeutig, aber sollte so nutzbar sein wie Du das vorhast
Marscel
2007-04-19, 13:53:31
Zur Laufzeit eine Variable erstellen geht nicht.
eval()?
Zur Laufzeit eine Variable erstellen geht nicht.
Oh doch. PHP kann das, aber ich weiß grad nicht auswendig wie...
eXistence
2007-04-19, 14:10:51
ist ewig her, dass ich was mit PHP gemacht habe, aber folgendes sollte eigentlich funktionieren:
<?
$var = "test";
$$var = 123;
?>
erzeugt quasi on-the-fly eine variable, die 'test' heißt und weist ihr den Wert 123 zu.
Ich kanns leider grad nicht testen, vielleicht trügt mich meine erinnerung auch :)
Marscel
2007-04-19, 14:35:34
<?php
$bla1blub = 'a';
$bla2blub = 'b';
$bla3blub = 'c';
// ...
for($i = 1; $i <= 3; ++$i)
{
eval('print $bla'.$i.'blub;');
}
?>
Gibt 'abc' aus... dasselbe geht natürlich auch umgekehrt für das Zuweisen.
Thomas(:
2007-04-19, 14:44:02
Zur Laufzeit eine Variable erstellen geht nicht.
Wann soll man sie denn sonst erzeugen :|
Für eine nicht interpretierte Sprache sind Variablen nach dem Kompilieren nur noch Speicheraddressen und können nicht mehr erzeugt werden.
Tommes
2007-04-19, 17:08:00
<?php
$bla1blub = 'a';
$bla2blub = 'b';
$bla3blub = 'c';
// ...
for($i = 1; $i <= 3; ++$i)
{
$varname = "bla".$i."blub";
echo $$varname;
}
?>
Wobei der Einsatz von Arrays viel sinnvoller ist.
Kinman
2007-04-19, 18:52:36
hm.. ich löse sowas immer mit arrays
$a['test'] = "hallo";
$a[$a['test']] = " wie geht's?";
echo($a['test'] . $a['hallo']); // ==> hallo wie gehts?
EDIT: Ansonst, wie schon genannt: eval http://www.php.net/manual/de/function.eval.php
Marscel
2007-04-19, 21:40:34
Wobei der Einsatz von Arrays viel sinnvoller ist.
Klar, auf jeden Fall, aber vielleicht hat der Threadstarter ja Gründe, dass es nicht so gemacht wird...
vBulletin®, Copyright ©2000-2025, Jelsoft Enterprises Ltd.