Parameter wird nach Funktionsaufruf überschrieben

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

  • Parameter wird nach Funktionsaufruf überschrieben

    Hi,

    sage mir doch bitte jemand, warum der Code
    PHP-Code:
    function test_array(&$test) {
        
    $test[] = 2;
    }

    echo 
    '<pre>';

    test_array($test_1);

    test_array($test_2 = array(1));

    $test_3 = array(1);
    test_array($test_3);

    print_r($test_1);
    print_r($test_2);
    print_r($test_3);

    echo 
    'PHP-Version: '.phpversion();
    echo 
    '</pre>'
    unter php 4.3.11 zu dieser Ausgabe führt
    Code:
    Array
    (
        [0] => 2
    )
    Array
    (
        [0] => 1
        [1] => 2
    )
    Array
    (
        [0] => 1
        [1] => 2
    )
    PHP-Version: 4.3.11
    unter php 5.1.2 jedoch zu
    Code:
    Array
    (
        [0] => 2
    )
    Array
    (
        [0] => 1
    )
    Array
    (
        [0] => 1
        [1] => 2
    )
    PHP-Version: 5.1.2
    ?

    Scheint, als würde php 5 zuerst die Funktion aufrufen und dann die Anweisung $test_2 = array(1) ausführen.

    Warum?
    Wie ändern?
    (Hab' nämlich keine Lust, alle meine Dateien zu durchsuchen und die entsprechenden Stellen zu ändern)
    Ich denke, also bin ich. - Einige sind trotzdem...

  • #2
    war da nicht irgendwas mit referenzen bei php5+ ?
    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


    Kommentar


    • #3
      Hm, ich kann es nicht so ganz nachvollziehen

      http://www.schnoop.de/test.php

      Kommentar


      • #4
        unter php 5.1.2 jedoch zu
        du hast ja auch nur die 5.0.5 ....
        INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


        Kommentar


        • #5
          betrifft das nur die 5.1.2?

          Weil wenn ich das ganze im Zend Studio debugge, bekomm ich das gleiche Ergebnis mit Version 5.1.1

          Kommentar


          • #6
            das kann ich dir nicht sagen. happy hat das problem. der kommt aber bestimmt wieder.....

            ich hatte nur deine und seine version gesehen und das diese halt unterschiedlich sind.
            INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


            Kommentar


            • #7
              Das stimmt wohl.

              Kommentar


              • #8
                it's not a bug, it's a feature...

                in den tiefen der doku steht, dass man sowas nicht machen sollte, da das ergebnis undefiniert sei.
                bis version 5.1.1 funktioniert's, ab 5.1.2 funktioniert's nicht mehr und da es vorher nie offiziell ging, ist es jetzt also auch kein fehler...


                naja, muss ich wohl doch alle dateien durchsuchen.
                hat jemand ne regex?
                Ich denke, also bin ich. - Einige sind trotzdem...

                Kommentar

                Lädt...
                X