PHP - so benennen Sie eine Objekt-Eigenschaft?
Ich Frage mich, wie kann ich ein Objekt umbenennen Eigenschaft in PHP, z.B.:
<?php
$obj = new stdclass();
$obj->a = 10; //will be renamed
$obj->b = $obj->a; //rename "a" to "b", somehow!
unset($obj->a); //remove the original one
Es funktioniert nicht in PHP5.3, (donno zu früheren Versionen), da gibt es einen Verweis von $obj->a
zugeordnet $obj->b
und so durch entfernen $obj->a
, den Wert von $obj->b
null. Irgendwelche Ideen, bitte?
- PHP Version 5.3.4 nach der Ausführung Ihres Codes $obj: object(stdClass)#1 (1) { ["b"]=> " int(10) }
- Es ist keine Referenz. Siehe diese Antwort für details auf PHP-Griffe schreiben von Variablen und Referenzen...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dein code funktioniert einwandfrei,
$obj->b
ist10
nach Ausführung: http://codepad.org/QnXvueicWenn Sie unset
$obj->a
Sie einfach entfernen Sie die Eigenschaft, Sie nicht zu berühren um den Wert. Wenn der Wert verwendet, der durch eine andere variable, es bleibt unverändert in der Reihenfolge variabel.Objekt verwenden, clonning, Referenz : PHP __clone () - Dokumentation