Die Krux mit den Referenzen (die Zweite)

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

  • Die Krux mit den Referenzen (die Zweite)

    Hallo Leute!

    (zweiter Thread zum selben Thema, wobei erster Thread jetzt, glaube ich, gelöscht wurde)

    Ich musste mich heute ausführlich mit Referenzen beschäftigen. Dabei bin ich auf einen Fehler in meinem Skript gestoßen, den ich mir nicht erklären kann:
    PHP-Code:
    class test
    {
        var 
    $start;

        function 
    test()
        {
            
    $result =& $this->ref();

            
    $this->start 'JUHU';

            
    var_export($result);
        }

        function &
    ref()
        {
            
    $output FALSE;

            
    $this->start $output// man achte auf diese Stelle

            
    return $this->start;
        }
    }

    $xy = new test// Funktioniert! Ausgabe: 'JUHU' 
    PHP-Code:
    class test
    {
        var 
    $start;

        function 
    test()
        {
            
    $result =& $this->ref();

            
    $this->start 'JUHU';

            
    var_export($result);
        }

        function &
    ref()
        {
            
    $output FALSE;

            return 
    $this->start $output// hier gucken
        
    }
    }

    $xy = new test// Funktioniert nicht! Ausgabe: NULL 
    PHP-Code:
    class test
    {
        var 
    $start;

        function 
    test()
        {
            
    $result =& $this->ref();

            
    $this->start 'JUHU';

            
    var_export($result);
        }

        function &
    ref()
        {
            return 
    $this->start FALSE// hier!
        
    }
    }

    $xy = new test// Funktioniert  wieder! Ausgabe: 'JUHU' 
    Dieser Fehler scheint nur bei Objekten und im Umgang mit Methoden aufzutauchen. Ich habe Ähnliches mit Funktionen und globalen Variablen versucht, wobei nie ein Fehler auftrat.

    Obwohl ich dachte, ich wisse über Referenzen in php ganz gut bescheid, werfen sich hier doch einige Fragen auf, die ich mir einfach nicht beantworten kann.

    Was ist da los???
    arrays sind klasse

  • #2
    Keiner eine Idee?

    Sollte ich etwa einen Fehler in der Zend-Engine entdeckt haben?
    arrays sind klasse

    Kommentar


    • #3
      Keiner eine Idee?
      Ungelesen, warum drängelst du so???

      Kommentar


      • #4
        Ungeduld und fehlende Erklärungsansätze meinerseits.
        arrays sind klasse

        Kommentar


        • #5
          OffTopic:
          Die Frage war eher rhetorisch

          Kommentar


          • #6
            Konnte jemand denselben Fehler feststellen oder liegt es an meiner PHP-Version (4.3.1) ?
            arrays sind klasse

            Kommentar


            • #7
              Also bei mir, irgendeine PHP Version 5, funktionieren alle drei Beispiele einwandfrei.

              Kommentar


              • #8
                v5.0.4:

                alle 3 schippsel geben JUHU aus.

                v4.3.11:

                1. JUHU
                2. NULL
                3. JUHU

                kann mir das verhalten der 4-er auch nicht erklären.

                Kommentar


                • #9
                  Danke für die Prüfung,... ich bin also doch nicht verrückt
                  arrays sind klasse

                  Kommentar

                  Lädt...
                  X