函数:Ds\Collection::copy()
适用版本:PHP 7.2.0 及以上版本
用法:copy() 方法用于返回一个当前集合的浅拷贝。浅拷贝意味着新的集合会包含原始集合中的相同元素的引用,而不是创建新的实例。该方法不会影响原始集合。
语法:public function copy(): Ds\Collection
参数:无
返回值:返回一个新的 Ds\Collection 对象,包含与原始集合相同的元素引用。
示例:
// 创建一个集合
$collection = new Ds\Collection(['apple', 'banana', 'cherry']);
// 创建一个集合的浅拷贝
$copy = $collection->copy();
// 修改原始集合的数据
$collection->push('durian');
// 输出原始集合的元素
var_dump($collection->toArray());
// 输出结果:array(4) { [0]=> string(5) "apple" [1]=> string(6) "banana" [2]=> string(6) "cherry" [3]=> string(6) "durian" }
// 输出浅拷贝集合的元素
var_dump($copy->toArray());
// 输出结果:array(3) { [0]=> string(5) "apple" [1]=> string(6) "banana" [2]=> string(6) "cherry" }
在上面的示例中,我们首先创建了一个包含三个元素的集合。然后,使用 copy()
方法创建了一个该集合的浅拷贝。接着,我们向原始集合中添加了一个新元素 "durian"。最后,我们分别输出了原始集合和浅拷贝集合中的元素。可以看到,原始集合被修改了,而浅拷贝集合保持了原来的状态。