Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Verständnisfrage OOP

Einklappen

Neue Werbung 2019

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

  • [Erledigt] Verständnisfrage OOP

    Hallo zusammen,

    zur Zeit bastle ich an einer Klasse und soweit funktioniert alles. Allerdings ist mir eines unklar. In meinen Methoden lege ich oftmals Eigenschaften fest (nur beispielhaft):

    PHP-Code:
    function beispiel(){
      if (
    $angabe true){
      
    // Mach dies, mach das
      
    }
      else{
      
    $this->ErrorMsg 'Bitte machen Sie eine richtige Angabe';
      }

    Eben diese Eigenschaft $this->ErrorMsg rufe ich in einer anderen Methode derselben Klasse auf. Das klappt auch alles einwandfrei.

    Muss ich trotzdem am Anfang der Klasse eine Eigenschaft definieren? Z.b.

    Code:
    private $ErrorMsg;

    Vielen Dank.


  • #2
    Es gehört auf jeden Fall zum guten Codestil und dient der Übersichtlichkeit. Ich habs nie versucht aber ich vermute mal das dann eine Exception geworfen wird.
    /e: Jap, wird eine Notice (Undefined property) geworfen.
    MfG

    Kommentar


    • #3
      Wie erzeugst du die Exception? Denn völlig gleich ob ich die Eigenschaften definiere oder nicht, Fehler werden mir keine angezeigt.

      Kommentar


      • #4
        Es wird keine Exception geworfen, sondern eine Fehlermeldung vom Parser angezeigt, wenn du mal
        Code:
        <?php
        error_reporting(E_ALL | E_STRICT);
        an den Anfang deines Scripts schreibst.
        http://hallophp.de

        Kommentar


        • #5
          Dann stell das error_reporting auf E_ALL und display_errors auf on.

          Kommentar


          • #6
            Ich hab beim entwickeln immer mit
            PHP-Code:
            error_reporting(E_ALL E_STRICT); 

            Kommentar


            • #7
              lol, dreifach hällt besser ^^
              PHP-Code:
              if ( $humans >= ) {
                 
              war ();

              Kommentar


              • #8
                plus
                PHP-Code:
                ini_set('display_errors'1); 
                wie ChrisB bereits erwähnte
                Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

                Kommentar


                • #9
                  Nein, das ist Quark. Ungesetzte Properties erzeugen keine Notices o.ä. Es ist aber guter Stil, diese zu deklarieren, auch um das Interface (sozusagen die von der Klasse verwendeten Elemente) zu definieren / dokumentieren.
                  --

                  „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                  Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


                  --

                  Kommentar


                  • #10
                    Zitat von gs93 Beitrag anzeigen
                    PHP-Code:
                    error_reporting(E_ALL E_STRICT); 
                    Okay, jetzt kann ich es nachvollziehen, reihenweise:
                    Code:
                    Notice: Undefined property:...
                    Nachdem ich alle Eigenschaften deklariert habe, sind die Warnings verschwunden. Jedenfalls hat es keine Auswirkung auf die Funktionsweise meiner Klasse.

                    Allerdings ist mein Bildschirm nun mit einigen Warnings und weiteren Notice geschmückt, damn it

                    Kommentar


                    • #11
                      nikosch, bei mir schon
                      Notice: Undefined property: indexController::$blablabla in C:\...\indexController.php on line 10

                      Kommentar


                      • #12
                        Zuweisen auf eine undefinierte Eigenschaft erzeugt diese scheinbar, aber beim Abfragen einer undefinierten Eigenschaft gibts ne Notice.

                        PHP-Code:
                        class {
                        }

                        $a = new A;
                        $a->5// klappt, erzeugt 'a'
                        echo $a->a// Ausgabe: 5
                        echo $a->// Notice: undefined property A:$b 
                        edit: eigentlich ganz im PHP-Stil, Erzeugung bei Zuweisung
                        Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

                        Kommentar


                        • #13
                          aber beim Abfragen einer undefinierten Eigenschaft gibts ne Notice.
                          Naja, das ist klar. Der Grund ist aber eben, dass der Wert nicht definiert ist, nicht dass die Variable nicht bekannt ist.
                          Notice: undefined property A:$b
                          --

                          „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                          Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


                          --

                          Kommentar

                          Lädt...
                          X