Ankündigung

Einklappen
Keine Ankündigung bisher.

Array in PHP5

Einklappen

Neue Werbung 2019

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

  • Array in PHP5

    Hallo zusammen.

    ich will in PHP 5 einen array in eine andere klasse vererben, aber irgendwie funktioniert das nicht.

    Mir wird immer nur Array angezeigt, aber ncith de wert.

    PHP-Code:
    class BaseClass {

        protected 
    $bb = array(12,13);
       function 
    __construct() {
                  
    $this->bb[0] = 15;
           print 
    "Im BaseClass Konstruktor\n";
       }
    }

    class 
    SubClass extends BaseClass {
       function 
    __construct() {
           
    parent::__construct();
                 
    $this->bb[0] *= 12;
           print 
    $this->bb;
       }
    }

    //$obj = new BaseClass();
    $obj = new SubClass(); 
    vielen dank für die Hilfe im Voraus.

    mfg anno

  • #2
    Re: Array in PHP5

    Zitat von anno
    Hallo zusammen.

    ich will in PHP 5 einen array in eine andere klasse vererben, aber irgendwie funktioniert das nicht.

    Mir wird immer nur Array angezeigt, aber ncith de wert.
    Das muss so sein. Andernfalls würde print nicht richtig funktionieren.
    Hat aber nix mit Vererbung oder irgendeiner Klasse zu tun.
    **********************************
    Nein, ich bin nicht die Signatur.
    Ich putze hier nur.
    **********************************

    Kommentar


    • #3
      ok gut, danke.

      und wo steckt hier der fehler? warum wird die variable $bb nicht mit dem wert von der test Funktion überschrieben?

      PHP-Code:
      <?php
      class BaseClass {

          public 
      $bb;
         function 
      __construct() {
                    
      $this->bb[0] = 15;
             print 
      "Im BaseClass Konstruktor\n";
         }
           
           public function 
      test($rr) {
           
               
      $this->bb[0] = $rr;
           
           }
           
      }

      class 
      SubClass extends BaseClass {
         function 
      __construct() {
             
      parent::__construct();
                   
      $this->bb[0] *= 12;
             echo 
      $this->bb[0];
         }
           
      }

      //$obj = new BaseClass();
      $obj = new SubClass();

      $obj->test(10);
      ?>

      Kommentar


      • #4
        Hast du Tomaten auf den Augen?

        Mir wird immer nur Array angezeigt, aber ncith de wert.
        Das liegt ganz einfach daran, dass du versuchst einen Array in einen String zuverwandeln, und dabei kommt nunmal "Array" heraus.
        PHP-Code:
        <?php
        echo array(); // "Array"
        ?>
        Du musst schon auf ein einzelnes Element zugreifen oder print_r(), var_dump() oder Konsorten verwenden.


        Zitat von anno
        und wo steckt hier der fehler? warum wird die variable $bb nicht mit dem wert von der test Funktion überschrieben?
        $bb wird doch überschrieben. Du musst dir $bb eben nach dem Ändern ausgeben lassen.

        Kommentar


        • #5
          Zitat von Zergling
          Hast du Tomaten auf den Augen?

          Mir wird immer nur Array angezeigt, aber ncith de wert.
          Das liegt ganz einfach daran, dass du versuchst einen Array in einen String zuverwandeln, und dabei kommt nunmal "Array" heraus.
          PHP-Code:
          <?php
          echo array(); // "Array"
          ?>
          Du musst schon auf ein einzelnes Element zugreifen oder print_r(), var_dump() oder Konsorten verwenden.


          Zitat von anno
          und wo steckt hier der fehler? warum wird die variable $bb nicht mit dem wert von der test Funktion überschrieben?
          $bb wird doch überschrieben. Du musst dir $bb eben nach dem Ändern ausgeben lassen.
          wenn du mal alles durlesen würdest, hättest du sehen können, dass im zweiten quelltext das problem weg ist.

          sag mir lieber warum ich mit einer set-Funktion (sollte man eigendlich kennen!), also zum werte in eine Klasse übergeben nicht die werte vom Konstruktor überschreiben kann!!

          Kommentar


          • #6
            Naja, du sagst dem Konstruktor er soll den aktuellen Wert ausgeben.. genau das tut er auch..

            PHP-Code:
            <?php
            class BaseClass {

                public 
            $bb;
               function 
            __construct() {
                          
            $this->bb[0] = 15;
                   print 
            "Im BaseClass Konstruktor\n";
               }
                
                 public function 
            test($rr) {
                
                     
            $this->bb[0] = $rr;
                
                 }
                
            }

            class 
            SubClass extends BaseClass {
               function 
            __construct() {
                   
            parent::__construct();
                         
            $this->bb[0] *= 12;
                   echo 
            $this->bb[0];
               }
                
            }

            //$obj = new BaseClass();
            $obj = new SubClass(); // Hier wird der konstruktor aufgerufen... also auch das 

            $obj->test(10); // Hier veränderst du den Wert, gibst ihn aber nirgends mehr aus..


            ?>
            lg
            Andi


            PS: A bissal freundlicher bitte

            Kommentar


            • #7
              NATÜRLICH!!

              Ich gebe den Wer in der SubKlasse wieder aus.

              Wie soll ich denn dann deiner Meinung nach machen, dass ich den Wert in der Subklasse ausgebe?

              PS:

              Den Werte gebe ich im Konstruktor der SubKlasse aus.

              Kommentar


              • #8
                Zitat von anno
                Ich gebe den Wer in der SubKlasse wieder aus.

                PS:
                Den Werte gebe ich im Konstruktor der SubKlasse aus.
                Wie oft und wann soll der Konstruktor Deiner Meinung nach aufgerufen werden?
                **********************************
                Nein, ich bin nicht die Signatur.
                Ich putze hier nur.
                **********************************

                Kommentar


                • #9
                  Der Konstruktor wird nur bei der Instanzierung mittels "new" aufgerufen, sonst nicht mehr.

                  Kommentar


                  • #10
                    Na so einen großen Zaunpfahl wollte ich dann doch nicht zum Winken nehmen. ^^
                    **********************************
                    Nein, ich bin nicht die Signatur.
                    Ich putze hier nur.
                    **********************************

                    Kommentar

                    Lädt...
                    X