array_slice (или другие функции array_ *) в ArrayObject - PullRequest
7 голосов
/ 08 июля 2011

У меня вопрос по поводу ArrayObject.Я хотел использовать array_slice в классе ArrayObject и не смог.Есть ли способ сделать это, без необходимости писать метод «среза» в классе, который реализует ArrayObject?

Ответы [ 2 ]

4 голосов
/ 08 июля 2011

Вы всегда можете работать с копией массива:

$array = $object->getArrayCopy();
// modify $array as needed, e.g. array_slice(....) 
$object = new ArrayObject($array);

Когда-то в прошлом была идея сделать все функции, которые принимают массивы (или, вероятно, многие из них), также и ArrayObject.Но я не знаю, как далеко это зашло и если оно все еще следует.Я думаю, что ArrayObject - это скорее поведенческая вещь, чем фактическая замена собственного массива в PHP.

Связанный вопрос: PHP Array и ArrayObject

1 голос
/ 08 июля 2011

Наличие класса, который оборачивает функции массива php, не так уж плоха.Это сделает код намного чище.

echo $myAry->slice(10, 5)->reverse()->join(", ");

Как обычный язык, вы знаете.

...