Nicht wie du willst. aber das kann mit einer Schleife gemacht werden.
%Vor%Sehen Sie nur zwei zusätzliche Zeilen.
Sie sollten sich objektorientierte Best Practices von PHP ansehen:
"da die Setterfunktionen $ zurückgeben, können Sie sie wie folgt verketten:"
%Vor%Dies ist übrigens bekannt als eine flüssige Oberfläche .
Ich würde Ihnen empfehlen nicht . Ernsthaft, nicht .
Ihr Code ist auf dem ersten Weg viel sauberer, es ist klarer von Ihren Absichten, und Sie werden Ihren Code nicht in dem Maße verstellen, in dem irgendwann jemand in der Zukunft Ihren Code betrachten und denken würde "Was zur Hölle war der Idiot denken "?
Wenn Sie darauf bestehen, etwas zu tun, was eindeutig der falsche Weg ist, können Sie immer ein Array erstellen, es iterieren und alle Eigenschaften in einer Schleife setzen. Ich werde dir jedoch keinen Code geben. Es ist böse.
Sie könnten einige Setter für das Objekt schreiben, das das Objekt zurückgibt:
%Vor%Sie könnten dann tun:
%Vor% Sie müssten für jede Eigenschaft einen Setter schreiben, da eine __set
-Funktion keinen Wert zurückgeben kann.
Alternativ können Sie eine einzelne Funktion festlegen, um ein Array von property = & gt; Werte und alles einstellen?
%Vor%und übergeben Sie das Array:
%Vor%Ich verstehe, dass dies eine alte Frage ist, aber zum Nutzen anderer, die darauf stoßen, habe ich das kürzlich selbst gelöst und wollte das Ergebnis teilen
%Vor% Offensichtlich sind keine Schutzmechanismen eingebaut. Der Hauptvorbehalt ist, dass die Funktion updateObjFromArray
davon ausgeht, dass für alle verschachtelten Arrays innerhalb von $array
der entsprechende Schlüssel in $obj
bereits existiert und ein Objekt ist, dies muss wahr sein oder es wie ein Objekt zu behandeln, wird einen Fehler auslösen.
Hoffe, das hilft! :)