ArrayObject::exchangeArray

(PHP 5 >= 5.1.0, PHP 7)

ArrayObject::exchangeArrayЗаменяет текущий массив на другой

Описание

public array ArrayObject::exchangeArray ( mixed $input )

Заменяет текущий массив (array) на другой массив (array) или объект (object).

Список параметров

input

Новый массив (array) или объект (object) для замены текущего массива.

Возвращаемые значения

Возвращает старый массив (array).

Примеры

Пример #1 Пример использования ArrayObject::exchangeArray()

<?php
// Массив с количеством фруктов
$fruits = array("lemons" => 1"oranges" => 4"bananas" => 5"apples" => 10);
// Массив мест в Европе
$locations = array('Amsterdam''Paris''London');

$fruitsArrayObject = new ArrayObject($fruits);

// Сейчас заменим фрукты на места
$old $fruitsArrayObject->exchangeArray($locations);
print_r($old);
print_r($fruitsArrayObject);

?>

Результат выполнения данного примера:

Array
(
    [lemons] => 1
    [oranges] => 4
    [bananas] => 5
    [apples] => 10
)
ArrayObject Object
(
    [0] => Amsterdam
    [1] => Paris
    [2] => London
)

Коментарии

Автор:
It's worth notting that ArrayObject::exchangeArray() doesn't call ArrayObject::offsetSet() internally for each offset/property of the array/object provided in argument.

It's also worth noting the let's say "unexpected" behavior of get/set:

<?php
class MyArrayObject extends ArrayObject
{
    public function 
offsetSet($name$value)
    {
       
parent::offsetSet($name '_control'$value);
       
parent::offsetSet($name$value);
    }
}

$test = new MyArrayObject();
$test->setFlags(\ArrayObject::ARRAY_AS_PROPS);
$test['my_value_1'] = 1;
$test['my_value_1'] = $test['my_value_1'] + 1;
$test['my_value_1'] += 1;
$test['my_value_1'] ++;
++ 
$test['my_value_1'];

$test->my_value_2 1;
$test->my_value_2 $test->my_value_2 1;
$test->my_value_2 += 1;
$test->my_value_2 ++;
++ 
$test->my_value_2;

print_r($test);

// Prints out:
MyArrayObject Object
(
    [
storage:ArrayObject:private] => Array
        (
            [
my_value_1_control] => 3
           
[my_value_1] => 5
           
[my_value_2_control] => 2
           
[my_value_2] => 5
       
)
)
?>
2014-05-09 17:59:13
http://php5.kiev.ua/manual/ru/arrayobject.exchangearray.html

    Поддержать сайт на родительском проекте КГБ