mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Mi 24.04.2024 23:29 Benutzername: Passwort: Auto-Login

Thema: [Frage] globale Variable in zur Laufzt. generierter Funktion vom 31.03.2004


Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Programmierung -> [Frage] globale Variable in zur Laufzt. generierter Funktion
Autor Nachricht
Account gelöscht
Threadersteller


Ort: -
Alter: -
Verfasst Mi 31.03.2004 00:25
Titel

[Frage] globale Variable in zur Laufzt. generierter Funktion

Antworten mit Zitat Zum Seitenanfang

Ich habe hier ein kleines Problem, welches mir auf den Geist geht. Et geht sich um Folgendes: Im Konstruktor werden alle vorhandenen _GET, _POST u.s.w. Variablen gesammelt und sollen in Zukunft in einem Array namens $this->gsVars sozusagen serialisiert werden.

Die Methode gsVarChange ersetzt durch eine zur Runtime erstellte Callback-Funktion alle Vorkommen nach dem Muster #$variable.erstedimension.zweitedimension# u.s.w. eines Strings durch die entsprechenden Werte aus $this->gsVars[variable][erstedimension][zweitedimension].

So sollte es sein. Aber in der mit create_function erstellten Funktion, die wohl wirklich als Funktion und nicht als Methode der Klasse augeführt wird, kann ich weder die Eigenschaft $this->gsVars verwenden (das Array ist hier dann leer). Das Schlüsselwort global bringt auch nichts.

Wie kann ich die Eigenschaft in der Funktion verfügbar machen? Seltsamerweise funktioniert das ganze, wenn ich bspw. anstatt $this->gsVars das autoglobale Array $_GET verwende und Werte über die Browserzeile ans SKript reiche.

[code:1:ca6773d0dd]class gsVarHandler extends gsParser {
/*
* Enthält Methoden zum Tauschen und Weiterverarbeiten der
* der Variablen in Templates.
* Der Konstruktor startet den Parser und handled ALLE
* nötigen Variablen (_GET, _POST, _SESSION, _COOKIE).
*/

var $gsVars=array();

function gsVarHandler() {
/*
* Konstruktor: parser instanziieren,
* Variablen Serialisieren
*/
$this->gsVars=$_GET;
$this->gsVars[wurst][eins][zwei][drei]=Und du bist Jim Knopf....;

!$_GET[gsTemplate] ? $this->gsTemplate=gsTemplateDir.gsDefaultTemplate : $this->gsTemplate=$_GET[gsTemplate];

$this->gsParseFile();

}

function gsVarChange($string) {
/*
* tauschen der Variablen
* der Form #$hans[wurst]# in einem String
*/
$pattern='/\#\$((.+)(\.(.+))*)\#/U';

//preg_match_all($pattern, $string, $arr);
//echo <b>.$arr[1][1].</b>;
$gsVars=$this->gsVars;
$string=preg_replace_callback($pattern, create_function('$matc


Zuletzt bearbeitet von am Mi 31.03.2004 08:51, insgesamt 2-mal bearbeitet
 
pRiMUS

Dabei seit: 09.09.2003
Ort: Vienna
Alter: 48
Geschlecht: Männlich
Verfasst Mi 31.03.2004 08:40
Titel

Antworten mit Zitat Zum Seitenanfang

seh ich das falsch oder werden in der klasse gar keine variablen definiert?

schau mal ob da die variable $gsVars überhaupt wo definiert wurde.

var $gsVar;

sollte in der klasse irgendwo stehen. dann sollte man sie auch mit $this->gsVar bzw $klasse->gsVar ansprechen können.
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
Anzeige
Anzeige
Account gelöscht
Threadersteller


Ort: -
Alter: -
Verfasst Mi 31.03.2004 08:48
Titel

Antworten mit Zitat Zum Seitenanfang

danke, das ist aber nicht das problem, die variablen sind üblicherweise (obwohl das nicht ganz sauber ist) nach der deklaration verfügbar. daran liegt es nicht, ich kann sie ja an jedem anderen punkt innerhalb einer methode (auch außerhalb der kind-klasse) ausgeben lassen. Ich werde das aber dennoch mal versuchen, danke für den hinweis.

//
nö. ich hab den quelltext oben mal geändert, das bringts aber leider wie gedacht auch nicht *Schnief*. das muss sich doch lösen lassen, oder muss ich echt über eine schleife gehen? *haarerauf*


Zuletzt bearbeitet von am Mi 31.03.2004 08:52, insgesamt 2-mal bearbeitet
 
Account gelöscht
Threadersteller


Ort: -
Alter: -
Verfasst Mi 31.03.2004 16:11
Titel

Antworten mit Zitat Zum Seitenanfang

schon gut. funktioniert eh nicht, wie ich mittlerweile festgestellt habe.

Zuletzt bearbeitet von am Mi 31.03.2004 17:19, insgesamt 1-mal bearbeitet
 
 
Ähnliche Themen [CSS] Problem mit generierter Seite
[SQL] Variable durch Variable aus anderer Tabelle ersetzen
Online-Chat Funktion - mit On und Offline Funktion
Was sind globale Farben?
Linienstärkenerkennung in Illustrator -globale Aenderung
Font Explorer X / Globale Sortierung
Neues Thema eröffnen   Neue Antwort erstellen
MGi Foren-Übersicht -> Programmierung


Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst an Umfragen in diesem Forum nicht mitmachen.