Zugriff auf nicht initialisierte Variable abfangen

@topic:

Vielleicht wäre ja eine Klasse mit statischen Methoden eine Möglichkeit, ca. so:

Code:
<?php
ob_start();

class SESSION
{ 
  public static function &_session()
  {
    if(!isset($_SESSION))
    {
      session_start();
    }
    return $_SESSION;
  }
  
  public static function set($key,$value)
  {
    $session=& self::_session();
    $session[$key]=$value;
  }
  
  public static function get($key)
  {
    $session=& self::_session();
    if(isset($session[$key]))return $session[$key];
  }

}

//irgendwo anders
SESSION::set('testvar','testvalue');

//Stunden später
echo SESSION::get('testvar');

?>

...der Zugriff könnte dann zwar nicht über $_SESSION erfolgen, die gewünschte Funktionalität sollte es aber erbringen.

@bofh1337:
Es ist doch richtig, dass man nicht einfach wahllos irgendwelche Variablen durch die Gegend schiessen soll, aber das will Wessy doch auch garnicht, ganz im Gegenteil :)
So, wie ich ihn verstanden habe, folgendes Szenario:
Stelle dir vor, eine Seite mit diversen Benutzergruppen, ein Teil der Funktionalität erfordert Authentifizierung.

Man könnte jetzt einfach eingangs die Authentifizierung vornehmen. Wenn diese Authentifizierung jedoch eine ressourcenraubende Maschinerie in Gang setzt, wäre es doch weitaus vorteilhafter, wenn man diese Maschinerie erst in Gang setzt, wenn sie benötigt wird....also eine Funktionalität angefordert wird, welche die Authentifizierung erfordert.

Das ist es, was Wessy sucht...er will die Session nicht eingangs starten und mit Leben erfüllen, sondern erst, wenn er sie braucht, also auf eine Session-Variable zugreift.

Quasi ein Variablen-__autoload, wenn man so will :-)
Früher musste man ja z.B. bei der Nutzung von Klassen die Skripte, in denen die Klassen stehen, vor Zugriff auf die Klasse einbinden.
Heute braucht man das nicht mehr, sofern man __autoload nutzt...ist doch gut und sinnvoll, die benötigten Skripte werden automatisch eingebunden, sobald sie benötigt werden :)
 
Hallo Sven, erst ein mal vielen Dank für dein Verständnis Du liegst goldrichtig! :D Hab die letzten Tage nicht mehr reingeguckt da ich echt das Interesse an meinem eigenen Thread verloren hab. :( Vielen Dank für das Beispiel. Ich werde es vermutlich auch so machen. Allerdings will ich trotzdem noch nach einer Lösung direkt mit der superglobalen suchen. Sobald ich eine Lösung gefunden habe, poste ich sie hier.

Grüße Wessy.
 
Zurück