如何替换对象的受保护属性


How to replace a protected property of an object?

我有一个对象,它有一个名为$_items的受保护属性。它包含更多对象的数组。

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

我的目标是根据$_items对象中的值对$_items进行排序。

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

分离$_items、对其进行排序,然后将其添加回原始对象(或原始对象的精确副本)的正确方法是什么。

我已经算出了分拣部分。对我来说,真正的问题是将$_items添加回与原始对象完全相同的对象。

您不必分离它,您可以使用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