Variaben in PHP
jb 07.03.2003 - 09:54 722 5
jb
Here to stay
|
Folgendes Problem: Hab PHP-Scripte mit funktionen. Also die Haupt-php hat ein Include wo die ganzen Funktionen drinnenstehen die man so braucht (Login, Logout, diverse Ausgabescripte usw...). Im Haupt-php steht ein Aufruf für die Checkfunktion ob ein User eingeloggt ist usw. Dieses wirderum ruft bei Erfolg eine Funktion aus dem Hauptscript auf das die entsprechende Seite aufbaut. Durch diese Verschachtelungen gehen mir nur leider meine ganzen Variablen föten, ein paar die ich so brauche übergebe ich eh mit, nur bei umfangreichen Variablen is das zu aufwendig. Also wenn z.B. ein Formular im Context steht, daß die Daten wieder an sich selber zurückgibt dann sind sie im Hauptscript ja vorhanden, leider in den Unterfunktionen nimma, wie kann ich das umgehen? Globale Variaben hab ich gefunden, nur was mach ich bei einen Haufen verschiedener Variablen? Array kapier ich irgndwie nicht bei PHP...
|
atrox
in fairy dust... I trust!
|
a) warum ruft die funktion aus dem include wieder eine funktion aus dem haupt-file auf ? du könntest ja auch im haupt-file einfach den rückgabewert der unterfunktion überprüfen und dann "vorort" entscheiden was passiert (nicht im unterprogramm)
b) in der funktion in der du die globalen variablen brauchst, definierst du sie mit "global $name1,$name2,....;". das bedeutet soviel wie "es gibt eine globale variable $name1".
|
Vivo
Dreamworker
|
Array kapier ich irgndwie nicht bei PHP...  hehe ... Atrox hat mal ne unbeantwortete Frage stehen lassen  kann nicht sein ... Prinzipiell schaut ein Array so aus : array( [key =>] value, ... );zb.: $testArray = array(5 => 1, 12 => 2); // 5. Element des Array ist 1 und 12. Elemnt ist 2
echo &testArray[5]; // gibt 1 aus
//sprich Array in php sind nicht Lückenlos (wie zb. in C)
Zusätzlich kann man auch noch statt Zahlen, Keywords verwenden : $testArray= array("testkey" => 7); // Hier wird testArray["testkey"] auf Wert 7 gesetzt
echo &testArray["testkey"]; //gibt 7 aus
Somit sind Arrays in php total simple ( und dadurch hin und wieder auch unübersichtlicher wenn man nicht aufpasst) Add : unset($testArray); // Löscht das gesamte Array wieder Add2 : richtigerweise müsste es oben in den Kommentaren nicht heissen auf den Wert gesetzt sond auf diesen Wert initialisiert, setzen kannst du den Wert ganz normal mit zb.: &testArray["testkey"] = 5;
Bearbeitet von Vivo am 07.03.2003, 10:28
|
jb
Here to stay
|
So, Problem gelöst  , so ähnlich wie es Atrox geschrieben hat, in der Unterfunktion einfach $variable=$GLOBALS["variable"];Script funzt wunderbar und ich brauch nix in die Funktion übergeben... Das include-Script mit den ganzen Funktionen hat jetzt 360 Zeilen und 21,6kB...  Mein größtes php-Script bisher... Langsam wirds aber unübersichtlich und extrem viel zu scrollen, arbeite mit vi
Bearbeitet von jb am 07.03.2003, 10:56
|
vossi
been there, done that
|
aber eine lösung mit Globalen Variablen für soetwas ist imho nicht der beste / ein schlechter weg.
das lässt sich durch strukturierte programmierung leicht alles umgehen ..
ich rufe von meinen seiten immer eine art Sitemanager auf der alles checkt, sollte was nicht funktionieren (login falsch usw.) kommt eine header umleitung, sollte es funktionieren wird die ganz normal die aufrufende datei weiterverarbeitet.
|
watchout
Legendundead
|
aber eine lösung mit Globalen Variablen für soetwas ist imho nicht der beste / ein schlechter weg.
das lässt sich durch strukturierte programmierung leicht alles umgehen ..
ich rufe von meinen seiten immer eine art Sitemanager auf der alles checkt, sollte was nicht funktionieren (login falsch usw.) kommt eine header umleitung, sollte es funktionieren wird die ganz normal die aufrufende datei weiterverarbeitet. right - globals sind pfusch
|