ArrayObject::exchangeArray() - 各种类及接口
ArrayObject::exchangeArray()
(PHP 5 >= 5.1.0, PHP 7)
Exchange the array for another one
说明
publicArrayObject::exchangeArray(mixed $input): arrayExchange the current array with another array or object.
参数
$inputThe new array or object to exchange with the current array.
返回值
Returns the old array.
范例
ArrayObject::exchangeArray()example
以上例程会输出:
Array ( [lemons] => 1 [oranges] => 4 [bananas] => 5 [apples] => 10 ) ArrayObject Object ( [0] => Amsterdam [1] => Paris [2] => London )
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.
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:
内容声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。部分内容参考包括:(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供参考使用,不准确地方联系删除处理!本站为非盈利性质站点,本着为中国教育事业出一份力,发布内容不收取任何费用也不接任何广告!)