Zum Inhalt springen

Variablendefinition mit Klasse -> Ich stehe auf dem Schlauch


Empfohlene Beiträge

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?

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...