[PHP] Variablen aus anderer Datei übernehmen.
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
art
code
datei
eingebundenen variablen verwenden
folgenden fehler
globalen bereich
host
jemand
klasse bauen
methode
pfad
rasche antwort
sagen
tun
url
verwalten
verwenden
vorteil
warnung
zeile
-
Hey ;)
Ich versuche gerade von einer anderen (eingebundenen) PHP Datei die Variablen zu verwenden und scheitere kläglich. Google hilft auch nicht wirklich.
Beispiel:
Ich habe eine config.php
<?php // MySQL Config: $mysql_server = "mysql.server.at"; $mysql_user = "username"; $mysql_password = "password"; // ...usw ?>
Und ich habe meine Database Klasse, in der ich eine Verbindung zur Datenbank verwalten will:
<?php // Hier will ich mir meine Variablen aus der anderen Datei holen: require_once('./pfad/config.php'); class Database { private $conn; function __construct() { // Hier will ich meine eingebundenen Variablen verwenden: $this->conn = mysql_connect($mysql_server, $mysql_user, $mysql_password); // LINE x mysql_select_db($mysql_database, $this->conn); // LINE y } public function close() { mysql_close($this->conn); } } ?>
Die Seite gibt mir dann aber folgenden Fehler aus:
Notice: Undefined variable: mysql_server in /home/public/rip/rip/class/Database.class.php on line x
Notice: Undefined variable: mysql_user in /home/public/rip/rip/class/Database.class.php on line x
Notice: Undefined variable: mysql_pass in /home/public/rip/rip/class/Database.class.php on line x
Notice: Undefined variable: mysql_database in /home/public/rip/rip/class/Database.class.php on line y
Wobei Zeile x und y die ersten sind, in der ich meine "$mysql_*" Variablen verwendet habe. (Sind auch im Code markiert. -> "// LINE x")
Ich bilde mir ein, dass ich es schon einmal so gemacht habe, dass ich eine Config Datei eingebunden habe, und dann einfach auf die Variablen zugegriffen habe, aber nun bekomme ich es nicht mehr hin.
Kann mir jemand sagen, wie das funktioniert?
Wenn das nicht geht, müsste ich mir eine Klasse bauen, die mir immer den Wert einer verlangten Variable zurück gibt...
Danke schon im voraus ;)
Sincer -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Entweder du benutzt das Globals-Array, oder du holst die Variable in die Methode.
oder$GLOBALS['var']
Bei letzterem kannst du $var ab dieser Zeile in der Methode wie im globalen Bereich verwenden.global $var;
Beitrag zuletzt geändert: 25.7.2011 13:47:17 von drafed-map -
sincer schrieb:
mal das probiert?
... und scheitere kläglich. Google hilft auch nicht wirklich.
aber ich würde das in etwa so tun:<?php ... class Database { ... function __construct() { global $mysql_server, $mysql_user, $mysql_password; ...
diese art hat ein paar vorteile.<?php class CUser { public $user = '...'; public $passwd = '...'; } class CDatabase extends CUser { public $host = '...'; function ... }
lg
=== edit:
da hat schon wieder die warnung 'jemand hat inzwischen gepostet' nicht funktioniert! was ist damit geschehen????
Beitrag zuletzt geändert: 25.7.2011 13:55:25 von hemiolos -
Danke euch beiden für die rasche Antwort :)
Ich habe es jetzt mal auf $GLOBALS['var'] umgeschrieben. Finde das recht sympathisch, da ich dann (in meinem Fall) auch gleich sehe, dass es sich um eine Konfigurations-Variable handelt.
Ein Klassenkonstrukt wollte ich vermeiden.
Thx
Sincer -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage