Archiv verlassen und diese Seite im Standarddesign anzeigen : foreach --> set variable ...
Willy_Lernen 22-11-2004, 22:03 Hallo Freunde der nacht,
hab da mal ne blöde newbie-frage:
kann man in PHP nicht existierende Variablen automatisch erstellen lassen, wo der Name sich aus dem content eines Arrays per foreach über geben lässt? Wenn nicht muss ich mich übergeben ... :)
z.B.:
<?php
session_start();
$_SESSION['nav'] = file ("nav.txt"); //enthält die menuepunkte
foreach ($_SESSION['nav'] as $_SESSION['cms']) {
...
};
};
?>
Vielen Dank im Vorraus, Ich versuche weiterhin was zu finden.
WL
mrhappiness 22-11-2004, 22:05 schlimm wenn ich dir grad nicht so ganz folgen kann?
du könntest nach variablen variablen suchen oder einfach mal beschreiben was du machen willst
penizillin 22-11-2004, 22:06 generell kannst du variablennamen so erstellen:
$varName = "myVar";
$$varName = "hello world";
echo $myVar; //müsste "hello world" ausgeben
bringt dich das weiter?
jahlives 22-11-2004, 22:11 $$varName = "hello world";
echo $myVar; //müsste "hello world" ausgeben
Wenn das hello world gibt, dann stimmt was mit deinem PHP nicht ($$) ;) ;)
Gruss
tobi
penizillin 22-11-2004, 22:13 ausprobiert?
jahlives 22-11-2004, 22:30 Salut
man lernt eben nie aus...
Gruss
tobi
Willy_Lernen 22-11-2004, 23:36 hm, ich meinte eher "on the fly",
also wenn in meinem obigen beispiel in der text datei:
news
about
impressum
stünde, dass NUR dann drei variablen geschrieben würden namens $news, $about, $ impressum.
Wohl gemerkt wissen wir beim programmieren des scripts noch nicht, dass dies der inhalt der txt datei ist, also können wir die variablen nicht festlegen sondern sie müssten sich aus der abfrage und der foreach ergeben ..
hab ich es jetzt besser erklärt? sorry für die unklare frage und danke für den versuch mir zu helfen ...
Lieben Gruß WL
penizillin 22-11-2004, 23:47 die frage war schon ok formuliert.
wenn du die zeilen aus der datei auslesen kannst, wo ist das problem, sie so, wie ich es mit myVar vorgeführt habe, zu erstellen?
an die anderen: gibts für "variablen erstellen" eigentlich einen fachbegriff? kann man hier auch "deklarieren" sagen? denke schon.
Willy_Lernen 23-11-2004, 00:12 ne funzt leider nicht weil in bei deinem Ansatz würde bei:
<?php
session_start();
$_SESSION['nav'] = file ("nav.txt"); //enthält news,about, impressum
foreach ($_SESSION['nav'] as $_SESSION['cms']) {
$varName .= $_SESSION['cms'];
$$varName .= $_SESSION['cms'] . ".txt";
echo $$varName;
};
?>
würde "news about impressum.txt" heraus kommen und nicht wie ich wollte
"news.txt
about.txt
impressum.txt"
also dass drei variablen gegründet werden wenn drei Zeilen im Array aus dem Text File vorhanden sind ...
*kopf kratz* - oder bin ich einfach zu müde um den wald vor lauter bäumen nich zu sehen ??? - ohne punkt vor = dasselbe ...
Lieben Gruß, WL
penizillin 23-11-2004, 00:39 zeilenumbrüche? die gibts auf dem flohmarkt.
Willy_Lernen 23-11-2004, 06:28 RRrrrRRRRRR **** Zeilenumbrüche??????? War wohl schon spät, wat? Also wegen nem "n" oder "br" werd ich hier wohl kaum posten!!!!
Also nochmal: Es besteht für jeden halbwegs nüchteren Menschen ein Unterschied zwischen 123.tx und 1.txt, 2.txt und 3.txt - jetzt verstanden ????
Gruß, WL
mrhappiness 23-11-2004, 08:05 Immer schön ruhig bleiben$_SESSION['nav'] = array('news', 'about', 'impressum');
foreach ($_SESSION['nav'] as $_SESSION['cms']) {
$varName .= $_SESSION['cms'];
$$varName .= $_SESSION['cms'] . ".txt";
echo $$varName;
}; das entspricht doch deinem Beispiel oder?
bei mir kommt als ausgabenews.txtabout.txtimpressum.txtund mit einem zeilenumbruch$_SESSION['nav'] = array('news', 'about', 'impressum');
foreach ($_SESSION['nav'] as $_SESSION['cms']) {
$varName .= $_SESSION['cms'];
$$varName .= $_SESSION['cms'] . ".txt";
echo $$varName.'<br />';
}; kommt das raus:news.txt
about.txt
impressum.txtwenn bei dir was anderes steht, dann machst du was falsch oder die datei ist schlecht
Willy_Lernen 23-11-2004, 08:22 ja isset denn ?! ...
Original geschrieben von mrhappiness
Immer schön ruhig bleiben$_SESSION['nav'] = array('news', 'about', 'impressum');
foreach ($_SESSION['nav'] as $_SESSION['cms']) {
$varName .= $_SESSION['cms'];
$$varName .= $_SESSION['cms'] . ".txt";
echo $$varName;
}; das entspricht doch deinem Beispiel oder?
bei mir kommt als ausgabenews.txtabout.txtimpressum.txtund mit einem zeilenumbruch$_SESSION['nav'] = array('news', 'about', 'impressum');
foreach ($_SESSION['nav'] as $_SESSION['cms']) {
$varName .= $_SESSION['cms'];
$$varName .= $_SESSION['cms'] . ".txt";
echo $$varName.'<br />';
}; kommt das raus:news.txt
about.txt
impressum.txtwenn bei dir was anderes steht, dann machst du was falsch oder die datei ist schlecht
ok, ok, ok ich bin ganz ruhig :) *tief luft hol* - um den zeilenumbruch gehts nicht, den kenn' ich grad noch so :) is mir in den letzten Jahren schon mal unter gekommen *lol* - Mir gings um das beisielhafte Ergebnis zur Beweisführung darüber dass sich wirklich Variablen "on the fly" selbst deklariert haben. Wie man sehen kann, hast du ein fertig deklariertes (starres) array benutzt und ich ein array über " = file (blabla.txt)" geladen, welches sich (logischer Weise war das der Sinn der Sache) durch den Inhalt von blabla.txt definiert. Also, um mir jetzt mal meine letzte Frage selbst zu beantworten, seh ich den Wald wohl eher vor lauter "arrays" nicht mehr, und mein array über " = file (blabla.txt)" funktioniert so nicht, wenn dein Beispiel, wie du sagtest, wohl richtig funktioniert. Also liegt im array definieren mein Fehler und da muss ich anfangen zu suchen...
Ich möchte mich bei penizillin für den Tip mit $$ bedanken
bei mrhappiness für sein Beispiel was mir aufzeigte wo mein Fehler liegt,
und mir für den Versuch das alles richtig zu verstehen :)))
Liebe Grüße, WL
Original geschrieben von jahlives
man lernt eben nie aus...
vor allem, wenn man sich nicht die Mühe gibt, das Manual richtig durchzulesen
|
|