ArrayObject::exchangeArray
(PHP 5 >= 5.1.0, PHP 7)
ArrayObject::exchangeArray — Заменяет текущий массив на другой
Возвращаемые значения
Возвращает старый массив (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 )
- PHP Руководство
- Функции по категориям
- Индекс функций
- Справочник функций
- Другие базовые расширения
- Стандартная библиотека PHP (SPL)
- Различные Классы и Интерфейсы
- Функция ArrayObject::append() - Добавляет значение в конец массива
- Функция ArrayObject::asort() - Сортирует записи по значению
- Функция ArrayObject::__construct() - Создает новый объект типа массив
- Функция ArrayObject::count() - Возвращает количество публичных свойств ArrayObject
- Функция ArrayObject::exchangeArray() - Заменяет текущий массив на другой
- Функция ArrayObject::getArrayCopy() - Создаёт копию ArrayObject
- Функция ArrayObject::getFlags() - Получает флаги поведения
- Функция ArrayObject::getIterator() - Создаёт новый итератор из экземпляра ArrayObject
- Функция ArrayObject::getIteratorClass() - Возвращает имя класса итератора для ArrayObject
- Функция ArrayObject::ksort() - Сортирует записи по ключам
- Функция ArrayObject::natcasesort() - Сортирует массив, используя регистронезависимый алгоритм "natural order"
- Функция ArrayObject::natsort() - Сортирует массив, используя алгоритм "natural order"
- Функция ArrayObject::offsetExists() - Проверяет, существует ли указанный индекс
- Функция ArrayObject::offsetGet() - Возвращает значение по указанному индексу
- Функция ArrayObject::offsetSet() - Установливает новое значение по указанному индексу
- Функция ArrayObject::offsetUnset() - Удаляет значение по указанному индексу
- Функция ArrayObject::serialize() - Сериализует ArrayObject
- Функция ArrayObject::setFlags() - Устанавливает флаги поведения
- Функция ArrayObject::setIteratorClass() - Устанавливает имя класса итератора для ArrayObject
- Функция ArrayObject::uasort() - Сортирует записи, используя пользовательскую функцию для сравнения элементов и сохраняя при этом связь ключ/значение
- Функция ArrayObject::uksort() - Сортирует массив по ключам, используя пользовательскую функцию для сравнения
- Функция ArrayObject::unserialize() - Десериализует ArrayObject
Коментарии
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
)
)
?>