"We are back" « oc.at

Variaben in PHP

jb 07.03.2003 - 09:54 722 5
Posts

jb

Here to stay
Registered: May 2000
Location: /home/noe/
Posts: 3523
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... :bash:

atrox

in fairy dust... I trust!
Avatar
Registered: Sep 2002
Location: HTTP/1.1 404
Posts: 2782
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
Avatar
Registered: May 2002
Location: Tal der Könige
Posts: 1478
Zitat von jb
Array kapier ich irgndwie nicht bei PHP... :bash:
hehe ... Atrox hat mal ne unbeantwortete Frage stehen lassen :) kann nicht sein ...

Prinzipiell schaut ein Array so aus :
array( [key =>] value, ... );
zb.:
Code:
$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 :
Code:
$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
Registered: May 2000
Location: /home/noe/
Posts: 3523
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... :eek: Mein größtes php-Script bisher...
Langsam wirds aber unübersichtlich und extrem viel zu scrollen, arbeite mit vi :D
Bearbeitet von jb am 07.03.2003, 10:56

vossi

been there, done that
Avatar
Registered: Feb 2003
Location: Vienna
Posts: 1436
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

Legend
undead
Avatar
Registered: Nov 2000
Location: Off the grid.
Posts: 6845
Zitat von vossi
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 ;)
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz