Class | protected Variable über var_dump Sichtbar

Dieses Thema im Forum "Webentwicklung" wurde erstellt von GaYlORd, 26. November 2013 .

  1. 26. November 2013
    Hi Leute,

    bin gerade dabei mich endlich mal in Klassen einzuarbeiten...

    Habe da eine Frage:
    Ich habe eine Klasse user, die um die Klasse athlete erweitert wird. In user erstelle ich eine UserID, die auch in athlete benutzt werden kann, aber nicht allgemein sichtbar sein soll -> protected.

    PHP:

    class  User {
        protected 
    $UserID  FALSE // geschützte, unverschlüsselte ID
        
    public  $pUserID  FALSE // Verschlüsselte ID, die öffentlich sein soll
    ....
    }

    class 
    Athlete  extends  User {
    ....
    }


        
    $user  = new  User ();
        
    $user -> getUserID ( $db );
        if(
    $user -> athlete ){
            
    $user  = new  Athlete ;
            
    $user -> getUserID ( $db );
            
    $user -> get_athlete_werte ( $db );
        }
        
    var_dump ( $user );
        echo 
    $user -> UserID ;
    So, beim echo kommt, was ich will:
    Code:
    Fatal error: Cannot access protected property Athlete::$UserID
    Allerdings schaut das im var_dump so aus:
    Code:
    object(User)#2 (20) {
     ["UserID":protected]=>
     int(25)
     ["pUserID"]=>
     string(8) "lalelu"
    ...
    }
    Das int(25) stimmt. Also die ID im Test ist eben 25, aber das dürfte er mir doch im var_dump auch nicht ausgeben, oder? Soll das so sein? Wenn ja, warum?
    Das lalelu ist nur ein Beispiel und natürlich nicht die echt verschlüsselte ID.

    Schöne Grüße
    gl
     
  2. 26. November 2013
    AW: Class | protected Variable über var_dump Sichtbar

    PHP: var_dump - Manual

    var_dump ist eben zum debugging gedacht und gibt einfach alles aus.
     
  3. 26. November 2013
    AW: Class | protected Variable über var_dump Sichtbar

    Den Satz hat ich vorhin auch gelesen gehabt, aber dachte eben, dass die Eigenschaft das protected ist, aber nicht der Wert.
    Sprich, dass in php < 5 die Ausgabe: ["UserID"]=xyz
    und in PHP >= 5 die Ausgabe: ["UserID" rotected]=xyz sei.
    Aber so erklärt das natürlich mein Problem

    Danke Dir!

    Gruß
    gl

    P.s.: BW geht grad nicht bei dir, weil kürzlich erst bewertet.
     
  4. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.