2013-02-04 39 views
0

我有一個對象具有名爲$_items的受保護屬性。它包含更多對象的數組。如何替換對象的受保護屬性?

protected $_items => array(object1, object2, object3); 

我的目標是基於關閉$_items對象中的值進行排序$_items

protected $_items => array(object3, object2, object1); 

什麼是分離$_items正確的方式,排序,然後將其添加回原來的對象(或原始的精確副本)。

我已經有了分揀部分。對我來說,真正的問題是將$_items添加回與原始完全相同的對象。

+0

你的意思是保護的,對不對?我建議編輯 – Oerd

+0

是的,受保護。對不起:P – Axel

回答

0

你不必脫離它,您可以在uasort和自定義函數:

uasort($this->_items, 'mySortFunction'); 

function mySortFunction($a, $b) { 
    // logic for comparing goes here 
    // $a and $b are items being compared in your array 
} 

在這裏閱讀更多:http://php.net/manual/en/function.uasort.php

+0

這是一個受保護的財產。當我嘗試通過'uasort'函數運行時,出現'致命錯誤:無法訪問受保護的屬性'。 – Axel

+0

因爲它受到保護,所以你必須在你的課堂上做。 –

+0

我不能,因此我的問題。我從另一個班級獲得這個對象。我想以某種方式克隆該對象,將該屬性設置爲public,以便我可以修改它,然後使用它(就像我將原始對象一樣)。 – Axel