Raketenwilli: Schon wieder: Call to a member function query() on null in

Beitrag lesen

Gib das DB/PDO-Object mit return zurück oder schreib es in den globalen Raum (e.g. $GLOBALS['db']).

Wie macht man das genau?

1_Beispiel->sagt() > 1000_Worte->sagt():

<?php
$GLOBALS['ZumGruß'] = 'Hallo Welt!';

function GlobalZumGruß() {
    echo $GLOBALS['ZumGruß'] . PHP_EOL;
}

GlobalZumGruß();

$ZumGruß = 'Grüß Gott!';

function GlobalGrüßGott() {
    echo $GLOBALS['ZumGruß'] . PHP_EOL;
}

GlobalGrüßGott();
GlobalZumGruß();

ausführen …

Hallo Welt!
Grüß Gott!
Grüß Gott!

Also ... ganz einfach: $GLOBALS['ZumGruß'] und $ZumGruß im globalen Namensraum sind sozusagen das selbe.

Hinweis:

Eigentlich ist die Verwendung von $GLOBALS ein „Hirnfurz“, weil das die Klarheit beseitigt, was in den Variablen steht.

Alternative? Konstanten:

define (
    'FH',
    fopen( __FILE__, 'r' )
); 


$i=0;
while( $row = fgets( FH ) ) {
	echo ( $i++ ) . "\t" . htmlspecialchars( $row );
}

Benutze also die Konstante wie gezeigt. Die sind in PHP immer global.