PHP - Ds\PriorityQueue::copy() 函数



PHP 的 Ds\PriorityQueue::copy() 函数用于返回队列的浅拷贝。此函数不接受任何参数。

语法

以下是 PHP Ds\PriorityQueue::copy() 函数的语法:

public Ds\PriorityQueue::copy(): Ds\PriorityQueue

参数

copy() 函数不接受任何参数。

返回值

此函数返回一个新的 Ds\PriorityQueue 对象,它是原始对象的浅拷贝。

PHP 版本

copy() 函数从 Ds 扩展的 1.0.0 版本开始可用。

示例 1

我们将向您展示 PHP Ds\PriorityQueue::copy() 函数创建队列浅拷贝的基本示例。

<?php
   // Create a new instance of PriorityQueue
   $pqueue = new \Ds\PriorityQueue();  
   $pqueue->push("Tutorials", 1); 
   $pqueue->push("Point", 2); 
   $pqueue->push("India", 3); 
  
   print_r($pqueue->copy());
?>

输出

以上代码将产生类似这样的结果:

Ds\PriorityQueue Object
(
    [0] => India
    [1] => Point
    [2] => Tutorials
)

示例 2

现在我们将使用 copy() 函数来复制使用 \Ds\PriorityQueue 类创建的空队列。

<?php
   // Create a new instance of the PriorityQueue
   $pqueue = new \Ds\PriorityQueue();
   $copyQueue = $pqueue->copy();
   
   print_r($pqueue);
   print_r($copyQueue);
?> 

输出

这将生成以下输出:

Ds\PriorityQueue Object
(
)
Ds\PriorityQueue Object
(
)

示例 3

在下面的代码中,我们将使用 copy() 函数来演示原始队列中的更改如何不影响已复制的队列。因此,在实际队列中添加额外元素不会影响已复制的队列。

<?php
   // Create a new instance of the PriorityQueue
   $pqueue = new \Ds\PriorityQueue();
   $pqueue->push("Task 1", 1);
   $pqueue->push("Task 2", 2);
   
   $copyQueue = $pqueue->copy();
   $pqueue->push("Task 3", 3);
   
   print_r($pqueue);
   print_r($copyQueue);
?> 

输出

这将创建以下输出:

Ds\PriorityQueue Object
(
    [0] => Task 3
    [1] => Task 2
    [2] => Task 1
)
Ds\PriorityQueue Object
(
    [0] => Task 2
    [1] => Task 1
)

示例 4

在下面的示例中,我们使用 copy() 函数迭代复制的 Ds\PriorityQueue。

<?php
   // Create a new instance of the PriorityQueue
   $pqueue = new \Ds\PriorityQueue();
   $pqueue->push("Task 1", 1);
   $pqueue->push("Task 2", 2);
   
   $copyQueue = $pqueue->copy();
   
   foreach ($copyQueue as $value) {
       echo $value . "\n";
   }
?> 

输出

以下是上述代码的输出:

Task 2
Task 1
php_function_reference.htm
广告