PHP7.4: Probleme mit Klassen und privaten Variablen

juedan

FreeBSDler
Hallo PHP-Spezialisten,

in PHP 7.4 habe ich folgende Klasse definiert:
Code:
class User {
   private $userid;
   private $dbh = null;
   function __construct($dbh) {
       if (isset($dbh))
           $this->dbh = $dbh;
       $this->userid = "";
   }
   function login($userid, $passwd) {
      $this->userid = $userid;
   }
   function getUserID() {
      return $this->userid;
   }
};

$user = new User($dbh);
$user->login("foo", "bar");
echo $user->getUserID();

Dieses echo $user->getUserID() gibt keinen Text aus.
Ich setze in der Methode $user->login die private Variable $this->userid auf "foo". Damit sollte doch mit der Methode $user->getUserID() "foo" ausgegeben werden. Wird es aber nicht... warum?

Beste Grüße Jürgen
 

midnight

OpenBSD & FreeBSD
Gute Frage. Ich habe auf meinem Server nur PHP 7.3.15 laufen und dort wird "foo" ausgegeben. 7.4 kann ich leider nicht so ohne weiteres auf die Schnelle testen.
 

juedan

FreeBSDler
Moin zusammen,

arrrgl. Ich bin ein Esel. Die Klasse funtioniert vollkommen korrekt. Ich hatte nicht bedacht, dass das Skript nach dem Login - dafür ist das Objekt gedacht - neu aufgerufen wird und so die privaten Daten einfach nur weg sind.
Entschuldigung für das Rauschen.

Jürgen
 
Oben