frage zu global

Hi

Ich hab ma ne kurze Frage zum Keyword global

Bsp.[PHP]$a = 3;
function add($b) {
global $a;
return $a+$b;
}
echo add(5);[/PHP]

Ist das Keyword global immer verfügbar oder gibt es da irgendwelche Konfigurationen in der php.ini die da Unterschiede machen können ?

ist immer verfügbar. wäre ja auch schwachsinn, denn wenn etwas nicht global seinsoll, lässt das das schlüsselwort eben weg.

Nils aka XraYSoLo

und nebenbei ist „global“ ja eigentlich schwachsinnig da man ja auch einfach schreiben könnte

[php]$a = 3;
function add($b, &$a) {
return $a+$b;
}
echo add(5, $a);[/php]

ja bei einer solchen Funktion, aber ich habe kein lust immer die Instanz meiner MySQL Klasse an jede andere Instanz mit zu übergeben.

Also bei mir ist der gebrauch in etwa so:

Seite1:
[PHP]
$sql = new MySQL();
require(„Seite2“)
$tracker = new Tracker();
[/PHP]
Seite2:
[PHP]
class Tracker() {
function Tracker() {
global $sql;
$sql->Query(„Abfrage an DB“,true);
}
}
[/PHP]

Hallo,

da schafft das Singleton-Pattern abhilfe.[php]class SQL {
private static $instance = null;

private __constructor()
{
mysql_connect(…)
self::$instance = $this;
}

public static function getInstance()
{
if (self::$instance == null) {
new SQL;
}
return self::$instance;
}
}[/php]Hab’s nicht getestet, kann sein, dass die Syntax nicht 100% stimmt.

Alternativ kannste jede Funktion als static deklarieren.

N43

warum denn nicht

[php]$mysql = mysql_connect(…);
global $mysql;

function($bla)
{
bla
}[/php]

wenn man etwas öfter benutzt… meinet wegen aber dann wenigstens mit so wenig code wie möglich ^^