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
)
)
?>
PHP.mk документација
ArrayObject::exchangeArray
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
Патека
arrayobject.exchangearray.php
Локална патека за оваа страница.
Извор
php.net/manual/en
Оригиналниот HTML се реупотребува и локално се стилизира.
Режим
Прокси + превод во позадина
Кодовите, табелите и белешките остануваат читливи во истиот тек.
Референца
arrayobject.exchangearray.php
ArrayObject::exchangeArray
Референца за `arrayobject.exchangearray.php` со подобрена типографија и навигација.
ArrayObject::exchangeArray
(PHP 5 >= 5.1.0, PHP 7, PHP 8)
ArrayObject::exchangeArray — Exchange the array for another one
= NULL
Вратени вредности
Новата вредност за array.
Примери
Пример #1 ArrayObject::exchangeArray() example
<?php
// Array of available fruits
$fruits = array("lemons" => 1, "oranges" => 4, "bananas" => 5, "apples" => 10);
// Array of locations in Europe
$locations = array('Amsterdam', 'Paris', 'London');
$fruitsArrayObject = new ArrayObject($fruits);
// Now exchange fruits for locations
$old = $fruitsArrayObject->exchangeArray($locations);
var_dump($old);
var_dump($fruitsArrayObject);
?>Пример #1 Пример што покажува затворачка ознака што го опфаќа последниот нов ред
array(4) {
["lemons"]=>
int(1)
["oranges"]=>
int(4)
["bananas"]=>
int(5)
["apples"]=>
int(10)
}
object(ArrayObject)#1 (1) {
["storage":"ArrayObject":private]=>
array(3) {
[0]=>
string(9) "Amsterdam"
[1]=>
string(5) "Paris"
[2]=>
string(6) "London"
}
}
Белешки од корисници 1 белешка
— Враќа внатрешни информации каде што е фрлен исклучокот ¶
пред 11 години