• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

frage zu global

Status
Für weitere Antworten geschlossen.

Frank

Neues Mitglied
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);

Ist das Keyword global immer verfügbar oder gibt es da irgendwelche Konfigurationen in der php.ini die da Unterschiede machen können ?
 
Werbung:
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);
 
Werbung:
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();
Seite2:
PHP:
class Tracker() {
  function Tracker() {
    global $sql;
    $sql->Query("Abfrage an DB",true);
  }
}
 
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;
   }
}
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
}

wenn man etwas öfter benutzt... meinet wegen aber dann wenigstens mit so wenig code wie möglich ^^
 
Werbung:
Status
Für weitere Antworten geschlossen.
Zurück
Oben