Variablen verschwinden
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
aufrufen
browser
button
code
date
datei
datenbank
existieren
fehlgeschlagen code
funktion
host
modeln
nutzen
problem
server
speichern
tag
vergessen
verschwinden
weiteres problem
-
Hallo,
ich habe bei mir Variablen, die zum Beipsiel die Zugangstag/date">daten für die Datenbank speichern.
Diese sind in einer Datei model.inc.php gespeichert. Wenn ich sie jedoch nach ordentlichen includen aufrufen will, haben sie keinen Wert mehr.
Das includen scheint nicht das Problem zu sein, da ich die Variablen noch aufrufen kann, solange sie nicht in eienr Verschachtelung sind.
Was ist der Fehler? -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
<?php $cfg['Server']['host'] = "sag"; $cfg['Server']['user'] = "ich"; $cfg['Server']['password'] = "euch"; $cfg['Server']['database'] = "nicht"; ?>
<?php class PageCreator { var $template; var $serverTest; function PageCreator() { $this->template = file_get_contents( "view/template.tpl" ); $serverTest = new ServerTest( $cfg['Server']['host'], $cfg['Server']['user'], $cfg['Server']['password'], $cfg['Server']['database'] ); } } ?>
2. Beitrag
Ein weiteres Problem ist aufgetreten, ich kann die Funktionen meiner Klasse nicht nutzen, alle aufgeführten funktionen existieren in der klasse, aber es kommt nur Call to undefiend funciton etc
<?php class(...) function ServerTestModel() { connectToDatabase( $this->host, $this->user, $this->database ); $this->cookie = $_COOKIE['visit']; /* * Tages- und Uhrzeitabhängiges */ $this->date = getDate(); $this->sunrise = getSunrise(); $this->sunset = geSunset(); $this->day = getDay(); $this->text = getGoodText(); /* * Clientseitiges */ $this->browser = getBrowser(); $this->visitorBehavior = getVisitorBehavior(); $this->clientIP = getClientIP(); $this->clientHost = getClientHost(); $this->lastPage = getLastPage(); /* * Serverseitiges */ $this->serverIP = getServerIP(); $this->serverHost = getServerHost(); $this->documentRoot = getDocumentRoot(); $this->scriptname = getScriptname(); /* * Zufälliges */ $this->randomQuote = getRandomQuote(); $this->randomLink = getRandomLink(); $this->randomPassword = getRandomPassword(); /* * Sonstiges */ $this->weatherpixie = getWeatherpixie(); } /* * Datenbank */ function connectToDatabase( $host, $user, $password, $database ) { $this->connection = mysql_connect( $host, $user, $password ) OR die( "Das Verbinden zur Datenbank ist fehlgeschlagen." ); mysql_select_db( $database, $this->connection ) OR die( "Das Auswählen der Datenbank ist fehlgeschlagen." ); } (...) }
3. Beitrag
Das Problem ist gelöst, habe einfach das this vergessen, aber warum verschwinden meine variablen?
Beitrag geändert: 19.10.2008 16:13:54 von tct -
Du darfst auch gerne den Edit-Button unten rechts an deinen Beiträgen verwenden...
Das Problem ist gelöst, habe einfach das this vergessen, aber warum verschwinden meine variablen?
Du muss die Variablen erst in der Klasse verfügbar machen, indem du sie entweder beim Aufrufen übergibst, oder als einfach global definierst. -
wie definiere ich variablen als global? und wie kann ich folgendes machen:
$this->objektreferenz->memberfunkion()?
in etwa so
<?php class PageCreator { var $template; var $model; function PageCreator( $model ) { $this->template = file_get_contents( "view/template.tpl" ); $this->model = model; } function editTemplate() { $this->template = str_replace( "{var=softwarename}", $this->model->softwarename, $this->template ); } } ?>
Beitrag geändert: 19.10.2008 16:24:47 von ork -
<?php $var1 = 'hallo ich '; $var2 = 'bin doof'; function WerBinIch() { global $var1; echo $var1; echo $var2; } WerBinIch(); ?>
Teste mal dieses Skript, dann dürfte dir schnell klar werden, was es mit dem Schlüsselwort global auf sich hat. -
danke, hat funktioniert!
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage