Seite 1 von 1

Modulübergreifende Variablen

Verfasst: Mi 23. Mär 2005, 15:04
von Chopper
Hab dazu noch keinen Beitrag gefunden irgendwie,
jedenfalls wenn 2 Module den selben Variablennamen haben und nicht anfangs bzw. am ende des moduls wieder gelöscht wurden ist der Inhalt der anderen Module noch in der Variable enthalten ...

Verfasst: Mi 23. Mär 2005, 15:10
von kummer
das ist richtig, ja. die frage ist nur, was ist deine frage?

Verfasst: Mi 23. Mär 2005, 15:18
von Chopper
*g* finde das ist nen bug, keine Frage ;) ...

Verfasst: Mi 23. Mär 2005, 15:25
von kummer
definitiv kein bug. das liegt einfach an php und nicht an contenido. eine variable hat genau den kontext, den du ihr gibst. das heist, eine globale variable ist halt global (und dadurch in anderen modulen verfügbar), wenn du sie global machst. wenn du klassen bildest, dann gelten die variablen entsprechend auch nur in den klassen. sprich: es funktioniert alles genau so, wie es soll.

Verfasst: Mi 23. Mär 2005, 15:26
von Chopper
naja manchmal weißt du ja nicht das jemand anders auch eine variable

$tmp oder was weiß ich $name hat ... und wenn dann beide module zusammen in einem Artikel sind kommt es unerwartet zu Fehlern ...

Verfasst: Mi 23. Mär 2005, 15:32
von kummer
es gibt zwei mögliche lösungen:

(1) die 'normale': alle benötigten variablen sauber initialisieren (z.b. auf null stellen)

oder

(2) die 'elegante': klassenbildung und nur variablen des klassenkontextes verwenden und globale variablen bewusst über $_GLOBALS einbinden.

Verfasst: Fr 22. Apr 2005, 13:36
von Chopper
mit (2) meinst du functionen usw. anlegen und alles damit machen ? ...

Naja also ich
unset($my_local_vars,$my_db_data, $my_tmp);
am anfang und am ende alle Variablen ...
in 2 Modulen weise ich $my_local_vars verschieden CMS_HTML[0-x] zu ,,,

$my_local_vars['html'][0] = "CMS_HTML[1]";
$my_local_vars['html'][1] = "CMS_HTML[2]";
$my_local_vars['html'][2] = "CMS_HTML[3]";

so, trotz des unset von $my_local_vars am anfang und ende beider Module, habe ich in CMS_HTML[1] in beiden Modulen den selben inhalt, heißt wenn ich in CMS_HTML[1] reinschreibe im backend "INSTALLATION" dann steht das in beiden Modulen da wo ich CMS_HTML[1] dann ausgebe ...
theoretisch müssten doch die CMS_HTML Variablen von Contenido in jedem Modul seperat behandelt werden oder ?