uthred Geschrieben 12. Juni 2014 Teilen Geschrieben 12. Juni 2014 Hallo, ich stehe irgendwie gerade auf dem Schlauch ... Ich habe eine Config.php Klasse, in der einfach nur public Variablen drin stehen(sind eigentlich andere Variablen) <?php class Config{ public $dbhost="bliblablub"; public $dbdatabase="blubdatabase"; public $dbuser="blubadmin"; public $dbpassword="blubpassword"; } ?>[/PHP] Diese Klasse steht in der Config.php Datei Nun möchte ich diese Klasse in einer anderen Klasse aufrufen und diese jeder internen Methode zugänglich machen... [PHP]<?php include_once("conf/Config.php"); $foo=new Foo(); class Foo{ private $_configF=new Config();//<-funkt net public function __construct(){ $_configF=new Config(); echo $_configF->dbhost;//<-funkt $this->load(); } private function load(){ echo $_configF->dbhost;//<-funkt net } } ?> Wenn ich die Variable im Konstruktor definiere (oder irgendwo anders) ist diese nur dort initialisiert und nicht in der darauf folgenden Methode. Ich arbeite nicht oft mit php und es ist wahrscheinlich ein dummer Fehler, aber selbst google hilft mir da wenig... Wie also rufe ich den Konstruktor schon bei der Variablendefinition auf? Bzw initialisiere die Variable als Instanz der Klasse Config? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Adrian3591 Geschrieben 12. Juni 2014 Teilen Geschrieben 12. Juni 2014 Warum machst du nicht so? class Config { const DB_HOST = "bliblablub"; const DATABASE = "blubdatabase"; const DB_USER = "blubadmin"; const DB_PW = "blubpassword"; } [/PHP] Jetzt kannst du in einer Funktion z.B. sagen [PHP] public function connectDb() { mysqli_connect(Config::DB_HOST, Config::DB_USER, Config::DB_PW, Config::DATABASE); } Musst halt nur vorher die Config.php inkludieren. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
hanfii Geschrieben 12. Juni 2014 Teilen Geschrieben 12. Juni 2014 Heyho, versuch das mal: <?php include_once("conf/Config.php"); $foo=new Foo(); $foo->test(); class Foo{ private $_configF; public function __construct(){ $this->_configF=new Config(); } private function load(){ echo $this->_configF->dbhost; } public function test(){ echo $this->_configF->dbhost; } } ?>[/PHP] Du definierst die Variable in deiner Klasse als private und erzeugst dann im Konstruktor eine Instanz von der Klasse Config. So müsste es gehen. Grüße Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
uthred Geschrieben 12. Juni 2014 Autor Teilen Geschrieben 12. Juni 2014 Danke das hat funtioniert ^^ ein einfaches this-> dazwichen hat das Problem gelöst Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.