Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Problem mit OOP

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Erledigt] Problem mit OOP

    Hallo zusammen,

    ich habe gerade angefangen ein wenig mit OOP rumzuprobieren und bin gleich ein ein Problem gestoßen.

    Wenn ich die unten stehende Klasse instanziere und dann die Funktion getTable oder getParameter aufrufen dann bekomme ich eine Fehlermeldung.
    PHP-Code:
    <?php

        
    class Parameter
        
    {
            
    // Klassenattribute anlegen
            
    private $parameter = array ( 2,4,5,6,7,8,9);
            private 
    $table;
            
            
    // Konstruktor der Klasse
            
    public function __construct $table )
            {
            
    // Tabellennamen an dem Klassenattribut zuordnen
            
    self::$table $table;
          }
          
          
    // Get - Methoden
          
    public function getTable ()
          {
              return 
    self::$table;
          }
          public function 
    getParameter ()
          {
              return 
    self::$parameter;
          }
          
            
        }

    ?>
    Code:
    Fatal error:  Access to undeclared static property:  Parameter::$table in /var/www/php-spielewelt/class_parameter.php on line 13
    PHP-Code:
    <?php

        
    include ("class_parameter.php");
        
        
    $test = new Parameter 'parameter' );
        
        echo 
    $test->getTable();
        
        
    $arraytest $test->getParameter();
        
        echo 
    "<pre>";
        
    print_r $arraytest );
        echo 
    "</pre>";

    ?>
    Wenn ich die beiden Klassenvariablen nun als "static" deklariere dann gehts. Nur will ich das eigentlich nicht tun. Was habe ich falsch gemacht dass es nicht geht?

  • #2
    Hallo,

    du fragst die Attribute ab, als wären sie statisch (static). Das heißt in diesem Fall also nicht self:: sondern $this->
    Refining Linux: “[url=http://www.refining-linux.org/archives/65/Performing-push-backups-Part-1-rdiff-backup/]Performing Push Backups – Part 1: rdiff-backup[/url]”

    Kommentar


    • #3
      Ich glaube ich hab nen klassischen Anfängerfehler gemacht.

      Danke für die Hilfe.

      Kommentar


      • #4
        du fragst die Attribute ab, als wären sie statisch (static). Das heißt in diesem Fall also nicht self:: sondern $this->
        Deinem Kommentar nach
        // Klassenattribute anlegen
        private $parameter = array ( 1 , 2, 3 ,4,5,6,7,8,9);
        private
        $table;
        soll es sich aber um Klassenattribute handeln. Dann fehlt in der Deklaration jeweils einfach ein static Schlüsselwort und alles sollte funktionieren.
        [COLOR="#F5F5FF"]--[/COLOR]
        [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
        „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
        [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
        [COLOR="#F5F5FF"]
        --[/COLOR]

        Kommentar

        Lädt...
        X