$GLOBALS in eriner funktion

bad taste

Erfahrenes Mitglied
hi leude...

also problem:

ich hab eine funktion gettemplate($template){..}
in der wird dann ein template eingelesen und ausgegeben..
jetzt müssen ja variablen in das template eingefügt werden, die vor dem aufruf der funktion belegt wurden......
aber man weiss ja nicht vorher, welche das sein werden...
ich hatte mir dann so was wie:
global $GLOBALS;
überlegt, aber das funzt net...

also gibt es eine möglichkeit, dass die variablen, die ausserhalb der funktion definiert wurden allgemein in der funktion auch verwendet werden können??

//bad taste
 
also das tut hab ich auch gelesen:-)

aber das problem ist, dass alles das, was da noch im quelltext steht, in einer fuktion stahen soll...

das mit global $variable funktioniert aber nur innerhalb einer funktion....darum hatte ich ja an global $GLOBALS; gedacht, das geht aber nicht....

global $variable; funzt irgendwie nicht..keine ahnung warum....

das ganze sieht in etwa so aus:

PHP:
$titel = 'lalalala';
global $titel;
gettemplate('test');

das gibt das template korrekt aus, ersetzt aber nicht die variable $titel im template "test"......
 
Zuletzt bearbeitet:
-

Original geschrieben von bad taste
also das tut hab ich auch gelesen:-)

das gibt das template korrekt aus, ersetzt aber nicht die variable $titel im template "test"......
Dann lies dir das Tutorial nochmal durch, denn anscheind hast du es nicht ganz verstanden ;)

Dein Platzhalter im Template wird erst durch den Inhalt der entsprechenden Variable ersetzt, wenn du die eval() Funktion auf das Template anwendest.
 
jo das weiss ich auch....

wenn ich das so mache, wie das da steht is das ja alles kein problem.....

wenn ich das ganze aber in eine funktion packe (acuh das eval()) dann geht das eben net mehr...

aber das ganze is ja eigendlich nur ein beispiel.....

denn die eigendliche frage ist ja: wie kann ich auf alle variablen ausserhalb der funktion zugreifen, ohne sie mit parametern zu übergeben.....
denn mit global scheint das ganze ncht zu gehen....
 
-

wie kann ich auf alle variablen ausserhalb der funktion zugreifen, ohne sie mit parametern zu übergeben.....
Hääää??

Auf eine Variable im Script kannst du immer zugreifen.

Wenn du auf eine Variable, die im Hauptteil definiert wurde, in einer Funktion benutzen willst, dann musst du diese Variable entweder als Parameter übergeben oder in der Funktion als global deklarieren.

Wenn du eine Variable erst in einer Funktion definierst, sie aber im Hauptteil benutzen willst, dann gibst du sie per return zurück.

Andere Möglichkeiten gibt es eigentlich gar nicht. Aber mir ist immer noch nicht ganz klar, was du meinst.
 
also:

also in einem template stehen ja immer variablen drin, die dann mit eval ersetzt werden müssen.....
dafür werden die variablen gesetzt.
dann soll eine funktion aufgerufen werden, in der eben diese ersetzung geschieht.....
das problem ist jedoch, dass man in die funkrion nicht global $var1,$var2,$var3; weil die benötigten variablen ja von dem template abhängen und alle mögliche variablen (über 200) in die funktion zu schreiben ist irgendwie bescheuert oder???
also müsste es so was wie global $GLOBALS; geben, so dass man einfach alle variablen, die gesetzt sind übergeben kann.....

aber: ich hab mir mal den quellcode von priginal vbulletin angeschaut, die machen das auch immer neu mit eval und einer funktion.....
aber ich wüsste es schon generell gerne, ob so etwas geht...

//ich hoffe, du verstehst jetzt was ich meine:-)

//thx fpr help

//bad taste
 
-

Das wäre totaler Schwachsinn ! :p

Warum sollte ich mir alle Variablen besorgen, wenn ich sowieso nur 3 oder 4 für das Template benötige. Und welche das sind, ergibt sich ja aus dem Template. Vorraussetzung ist natürlich, ich weiß ganz genau, welches Template ich bei welchem Seiten- oder Funktionsaufruf auslese.
 
Habe nur den 1. post gelesen drum weis ich nicht ob ich nur ne lösung widerhohl :)

Übergib die globals als parameter and die funktion

aufrufFunktion($GLOBALS);

ps: guten morgen :)
 
Zurück