Felix Riesterer: Geltungsbereich Variable in Funktion

Beitrag lesen

Lieber Pit,

die Lösung mit global hat man Dir ja schon angeboten. Aber dazu wurde auch gesagt, dass das nicht optimal ist. Wie aber kann man die Idee mit dem globalen Zugriff auf eine Variable besser lösen?

Wenn man sein Programm als großes Objekt definiert, dann kann man in diesem Objekt sogenannte Eigenschaften definieren. Innerhalb des Objekts sind diese Eigenschaften wie globale Variablen verfügbar.

Vergleiche:

$myVar = 3;

function say () {
    global $myVar;
    echo $myVar;
}

class MyProgram {

    private $myVar = 3;

    public  function say () {
        echo $this->myVar;
    }
}

$myProgram = new MyProgram;
$myProgram->say();

Klar, für dieses klitzekleine Beispiel ist der Schreibaufwand mit einer globalen Variable viel geringer. Aber je größer ein Projekt wird, desto besser gelingt es den Überblick zu behalten, wenn es in objektorientierter Weise modularisiert wird.

Jetzt möchtest Du eine PDO-Instanz nutzen. Da hast Du schon ein Objekt. Warum packst Du es nicht als eine Eigenschaft in Dein zum Objekt umgewandeltes Programm? Anstatt $myVar könntest Du $this->db verwenden - oder so.

Liebe Grüße,

Felix Riesterer.