[PHP5] Rückgabewert von Methoden

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

  • [PHP5] Rückgabewert von Methoden

    Hallo, ich mal wieder

    Wie würdet ihr in dem folgenden Fall verfahren?
    Ich habe folgende Beispiel-Klasse
    PHP-Code:
    class test
    {
     function 
    test()
     {
       if(
    $irgendeine_aktion==TRUE)
       {
            return 
    $ergebniss_array;
       }
       else
       {
            return 
    FALSE;
       }
     }

    Diese prüfe ich dann beim Aufruf wie folgt.
    PHP-Code:
    $t = new test;
    if(
    $t->test())
    {
      
    // mach was

    Problem hierbei ist, dass mal ein Array und mal ein Boolean zurückgegeben wird und das nicht ganz sauber ist ...
    (Jedenfalls bemängelt das das Zend Studio)
    Wie seht ihr dies bzw. würdet ihr das ändern? Würdet ihr überhaupt etwas ändern?

    Poscht

  • #2
    Quick and Dirty
    PHP-Code:
    class test
    {
     function 
    test()
     {
       if(
    $irgendeine_aktion==TRUE)
       {
            return 
    $ergebniss_array;
       }
       else
       {
            return array(
    FALSE);
       }
     }

    Gruss

    tobi
    Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

    [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
    Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

    Kommentar


    • #3
      Ich wüsste nicht, was daran unsauber sein soll. Eine ganze Reihe von PHP-Funktionen gibt auch false oder beispielsweise eine Ressource zurück.
      [FONT="Helvetica"]twitter.com/unset[/FONT]

      Shitstorm Podcast – Wöchentliches Auskotzen

      Kommentar


      • #4
        PHP selber hat genug Funktionen, die im Fehlerfall false und sonst einen andern Wert zurück geben. Aber jahlives ist sicher schöner
        Gruss
        H2O

        Kommentar


        • #5
          Wenn der eigentliche Rückgabewert ein array, würde ich im Fehlerfall null zurückgeben. So wäre es auch in anderen Sprachen! false halte ich durchaus für unsauber (auch bei den php-Funktionen!)

          Kommentar


          • #6
            Neee.... Das ist ein ganz übles Beispiel!!!

            Seit wann haben Konstruktoren einen Rückgabewert?
            Und wenn, dann bestenfalls eine Referenz auf eine Objektinstance!
            Wir werden alle sterben

            Kommentar


            • #7
              Neee.... Das ist ein ganz übles Beispiel!!!

              Seit wann haben Konstruktoren einen Rückgabewert?
              Und wenn, dann bestenfalls eine Referenz auf eine Objektinstance!
              Glaube eher, das war nicht beabsichtigt. Hat ja von uns auch keiner als Konstruktor gesehen gehabt, weil es aus der Fragestellung heraus eigentlich klar war, das es sich um eine Methode handeln soll!

              Kommentar


              • #8
                Hat ja von uns auch keiner als Konstruktor gesehen gehabt,
                Und genau darum habe ich es angesprochen. Ich möchte auch niemandem Absicht unterstellen. Allerdings denke ich schon, dass man nur anhand von testbarem Code solche Angelegenheiten besprechen kann.

                (Jedenfalls bemängelt das das Zend Studio)
                Das zeugt auf jeden Fall schon mal von dem Versuch es laufen zu lassen.

                Man sollte den TE nicht in der Falle sitzen lassen.
                Zuletzt geändert von combie; 30.01.2008, 13:47.
                Wir werden alle sterben

                Kommentar


                • #9
                  Ok, das Beispiel war nicht ganz sauber.
                  Die Methode test ist dummerweise auch der Konstruktor.
                  Es war nur eine simple Methode aus der Klasse gemeint.
                  Der Konstruktor wird ja auch eher über __construct definiert.

                  Die Klasse, in der ich das Ergebniss in der Zend-Umgebung hatte, ist ziemlich umfangreich und als Beispiel nicht wirklich geeignet.

                  Poscht

                  Kommentar


                  • #10
                    Original geschrieben von Poscht
                    Die Klasse, in der ich das Ergebniss in der Zend-Umgebung hatte, ist ziemlich umfangreich und als Beispiel nicht wirklich geeignet.
                    Es reicht ja, wenn du die Methode postest.
                    [FONT="Helvetica"]twitter.com/unset[/FONT]

                    Shitstorm Podcast – Wöchentliches Auskotzen

                    Kommentar


                    • #11
                      Original geschrieben von unset
                      Es reicht ja, wenn du die Methode postest.
                      Die Methode macht doch auch nichts weiter als entweder ein Array oder FALSE zurückzugeben.
                      Was in der Methode selbst passiert ist doch auch für die Frage nicht wirklich relevant oder?

                      Meine Frage ist eigentlich mit den ganzen Antwortpostings beantwortet, da fast alle die Rückgabe eines leeren Arrays der Rückgabe von FALSE vorziehen würden.

                      Vielen Dank an alle,
                      Poscht

                      Kommentar


                      • #12
                        Ich würde false allerdings klein schreiben. Um das letzte Wort zu haben ...
                        [FONT="Helvetica"]twitter.com/unset[/FONT]

                        Shitstorm Podcast – Wöchentliches Auskotzen

                        Kommentar


                        • #13
                          Obwohl einige gewichtige Gründe dagegensprechen, schreibe ich auch immer FALSE und TRUE.
                          Das schiebt sie in die Nähe von Konstanten.
                          Wir werden alle sterben

                          Kommentar


                          • #14
                            Meine Frage ist eigentlich mit den ganzen Antwortpostings beantwortet, da fast alle die Rückgabe eines leeren Arrays der Rückgabe von FALSE vorziehen würden.
                            Soweit ich das sehe gab es nur die Vorschläge false, array(false) und null...

                            Kommentar


                            • #15
                              Mein Vorschlag:

                              Alter Stil:
                              Funktion OK und liefert Daten -->> gefülltes Array
                              Funktion OK und hat keine Daten -->> leeres Array
                              Funktion undurchführbar -->> FALSE und wirft Warning(error)

                              Neuer Stil:
                              Funktion OK und liefert Daten -->> gefülltes Array
                              Funktion OK und hat keine Daten -->> leeres Array
                              Funktion undurchführbar -->> wirft Exeption
                              Wir werden alle sterben

                              Kommentar

                              Lädt...
                              X