StupidBoy
Mitglied Gold
Einen schönen guten Abend,
ich schlage mich mal wieder ein wenig mit PHP rum und auch mit der OOP.
Kurz und knackig mein Problem:
Ich defefiniere eine Session in Methode A und will etwas später den Inhalt der Session mit einer anderen Methode ausgeben, alles noch in der selben Klasse.
Dann bekomm ich aber die Medlung "Notice: Undefined variable: userSession".
Was mich nun etwas wundert, dass ich das Problem nicht habe, wenn ich die Session in der selben Methode definiere die die Session-Variable dann auch ausgibt.
Schließlich ist der Sinn der Session ja, dass ich eine Variable hab die nicht in irgendeiner Weise gekapselt ist und erhalten bleibt - so seh ich das zumindest
.
Das geht nicht:
Und so gehts:
ich schlage mich mal wieder ein wenig mit PHP rum und auch mit der OOP.
Kurz und knackig mein Problem:
Ich defefiniere eine Session in Methode A und will etwas später den Inhalt der Session mit einer anderen Methode ausgeben, alles noch in der selben Klasse.
Dann bekomm ich aber die Medlung "Notice: Undefined variable: userSession".
Was mich nun etwas wundert, dass ich das Problem nicht habe, wenn ich die Session in der selben Methode definiere die die Session-Variable dann auch ausgibt.
Schließlich ist der Sinn der Session ja, dass ich eine Variable hab die nicht in irgendeiner Weise gekapselt ist und erhalten bleibt - so seh ich das zumindest

Das geht nicht:
PHP:
class exampleController extends Zend_Controller_Action
{
//...
public function fooAction()
{
//...
$userSession = new Zend_Session_Namespace('userData');
$userSession->userName = "Mustermann";
//...
}
//...
protected function testAction(){
$text = "Hallo" . $userSession->userName;
$view = $this->initView();
$view->ausgabe = $text;
}
}
Und so gehts:
PHP:
class exampleController extends Zend_Controller_Action
{
//...
protected function testAction(){
$userSession = new Zend_Session_Namespace('userData');
$userSession->userName = "Mustermann";
$text = "Hallo" . $userSession->userName;
$view = $this->initView();
$view->ausgabe = $text;
}
}