Referenzen auf Objekte in PHP5

  • Hallo,
    ich bin gerade dabei, mich in den Bereich OOP einzulesen.
    In dem Artikel zu Funktionen auf php::bar steht nun:

    Zitat

    Ab PHP 5 werden Objekte immer als Referenz übergeben.

    Dazu ein Beispiel, das ich mir überlegt habe.

    PHP
    class myObject
    {
    /*...*/
    }
    $my = new myObject();
    
    
    some_function($my);
    some_function(&$my);


    Versteh ich das richtig, dass die letzte und vorletzte Zeile absolut das gleiche machen und das obige Zitat lediglich bedeutet, dass ich es mir sparen kann, das &-Zeichen hinzuschreiben?

    Information will frei verfügbar sein.

    Don't eat unpeeled hedgehogs.

  • Hallo!
    Sollte in 99,9% der Fälle das gleiche sein.

    Es gibt jedoch Ausnahmen:


    Ausgabe:

    Zitat

    string(15) "Hallo, du Affe!"
    object(MyClass)#1 (0) { }

    Sollte klar sein: Das Objekt wird implizit in einen String verwandelt und der .=-Operator wirkt (im Gegensatz zum "=") auf die hinter der Referenz stehende Variable. Bei der zweiten Version wird er nicht auf eine Referenz sondern auf einen neu erzeugten String. Aber das sollte ziemlich egal sein.

    Viele liebe Grüße
    The User