關於PHP,有沒有辦法改變對象屬性的順序?PHP:改變對象屬性的順序
class o {public $a = 1, $b = 2;}
$o = new o;
foreach (get_object_vars($o) as $k => $v) {
print $k . '->' . $v . PHP_EOL;
}
輸出:
a->1
b->2
現有的公共變量可以是unset()
,和例如加入與$o->c = 3;
。但array functions不適用於對象,我不想將該對象轉換爲某個stdClass。
我能想到的唯一實用的解決方法是裝飾一個數組對象,並使魔法__get()
和__set()
方法過載,但這只是一種解決方法,而不是解決方案。
我一直在使用'__invoke'但有人downvoted發佈的解決方案。另一方面,不要你想那樣做。 –
__invoke不應該被用於這個目的 –
請檢查我的答案 - 我編輯它,並添加提及ArrayObject接口 –