ArrayObject
在线手册:中文 英文
PHP手册

ArrayObject::exchangeArray

(PHP 5 >= 5.1.0)

ArrayObject::exchangeArrayExchange the array for another one.

说明

public array ArrayObject::exchangeArray ( mixed $input )

Exchange the current array with another array or object.

参数

input

The new array or object to exchange with the current array.

返回值

Returns the old array.

范例

Example #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);
print_r($old);
print_r($fruitsArrayObject);

?>

以上例程会输出:

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


ArrayObject
在线手册:中文 英文
PHP手册
PHP手册 - N: Exchange the array for another one.

用户评论:

Dmitri Snytkine (15-Dec-2009 10:11)

It seems that input array is always passed by reference.
For example if you have an existing array
$array with some values
then you have an arrayobject $o
and then you do this:
$o->exchangeArray($array);
$o->offsetSet('somekey', 'some value');

Now if you check your $array array, it will have
a key 'somekey' with value of 'some value'

I totally did not expect that, I am sure it was a mistake to pass array by reference by default.