PHP - Ds Sequence::shift() 函数



PHP 的 Ds\Sequence::shift() 函数用于移除并检索序列中的第一个值。Ds\Sequence 类提供了另一个名为 remove() 的函数,该函数移除指定索引处的元素,如果索引为 0,则移除第一个值。

如果当前序列为空 ([]),此函数将抛出“UnderflowException”异常。

语法

以下是 PHP Ds\Sequence::shift() 函数的语法:

abstract public Ds\Sequence::shift(): mixed

参数

此函数不接受任何参数。

返回值

此函数返回被移除的第一个值。

示例 1

以下是 PHP Ds\Sequence::shift() 函数的基本示例:

<?php 
   $seq = new \Ds\Vector([10, 20, 30, 40, 50]);
   echo "The sequence elements are: \n";
   print_r($seq);
   echo "The deleted element: ";
   #using shift() function
   print_r($seq->shift());
?>

输出

上述程序产生以下输出:

The sequence elements are:
Ds\Vector Object
(
    [0] => 10
    [1] => 20
    [2] => 30
    [3] => 40
    [4] => 50
)
The deleted element: 10

示例 2

以下是 PHP Ds\Sequence::shift() 函数的另一个示例。我们使用此函数移除并检索此序列 (["Raja", "Jai", "Adithya"]) 的第一个元素:

<?php 
   $seq = new \Ds\Vector(["Raja", "Jai", "Adithya"]);
   echo "The original sequence: \n";
   print_r($seq);
   echo "The deleted elements are: ";
   for($i = 0; $i<3; $i++){
	   print_r($seq->shift()." ");
   }
   echo "\nThe sequence after shift: \n";
   print_r($seq);
?>

输出

执行上述程序后,将显示以下输出:

The original sequence:
Ds\Vector Object
(
    [0] => Raja
    [1] => Jai
    [2] => Adithya
)
The deleted elements are: Raja Jai Adithya
The sequence after shift:
Ds\Vector Object
(
)

示例 3

如果序列为空 ([])shift() 函数将抛出“UnderflowException”异常:

<?php 
   $seq = new \Ds\Vector([]);
   echo "The original sequence: \n";
   print_r($seq);
   echo "The deleted elements are: ";
   print_r($seq->shift());
   echo "\nThe sequence after shift: \n";
   print_r($seq);   
?>

输出

执行上述程序后,将生成以下输出:

The original sequence:
Ds\Vector Object
(
)
The deleted elements are: PHP Fatal error:  Uncaught UnderflowException: 
Unexpected empty state in C:\Apache24\htdocs\index.php:6
Stack trace:
#0 C:\Apache24\htdocs\index.php(6): Ds\Vector->shift()
#1 {main}
  thrown in C:\Apache24\htdocs\index.php on line 6
php_function_reference.htm
广告