php函數 return

值通過使用可選的返回語句返回。可以返回包括數組和對象的任意類型。返回語句會立即中止函數的運行,並且將控製權交回調用該函數的代碼行。

<?php
function square($num)
{
return $num * $num;
}
echo square(4); // 输出 '16'。
?>

函數不能返回多個值,但可以通過返回一個數組來得到類似的效果。

<?php
function small_numbers()
{
return [0, 1, 2];
}
// 使用短数组语法将数组中的值赋给一组变量
[$zero, $one, $two] = small_numbers();

// 在 7.1.0 之前,唯一相等的选择是使用 list() 结构
list($zero, $one, $two) = small_numbers();
?>

在 PHP 中實現連結串列

參考文件         The SplDoublyLinkedList class

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

連結串列是在許多程式語言中實現的常見資料結構。它是線性的,包含相互連結的節點。
每個節點都包含資料和到相鄰節點的連結。因此,連結串列形成了一個節點鏈。連結串列有不同的變體。
1.單連結串列:單向。它只在向前的方向上移動。
2.雙連結串列:是雙向的。它向前和向後兩個方向遍歷。
3.迴圈連結串列:單向迴圈。
4.迴圈雙向連結串列:雙向迴圈。

我們可以在連結串列中進行各種操作。基本操作如下:
1.遍歷
2.插入
3.刪除
4.更新
5.搜尋
PHP 提供了一個類 SplDoublyLinkedList 用於實現連結串列。它是一個雙向連結串列。

$list = new SplDoublyLinkedList();
$list->push(10);
$list->push(15);
$list->push(20);
displayList($list);
function displayList($list) {
for ($list->rewind(); $list->valid(); $list->next()){
echo $list->current()."<br>";
}
}

push() 方法接受要推送的引數並允許在列表中附加值。該元素將被推到連結串列的末尾。
rewind() 方法從連結串列的開頭回退迭代器。例如,迭代器將移動到列表的第一個元素。
valid() 方法檢查連結串列是否包含更多節點,next() 方法移動到連結串列的下一項。因此,我們可以在 for 迴圈中使用上述示例中的這些方法來遍歷連結串列的元素。
在迴圈內部,current( )方法表示當前元素。因此,將列印當前元素。使用 pop() 方法刪除連結串列中的元素

使用 pop() 方法刪除連結串列中的元素
我們可以使用 pop() 方法從連結串列中刪除最後一個元素。該方法不接受任何引數。

從連結列表中查詢頂部和底部值
我們可以使用 top() 方法找到連結串列的頂部值,對於底部值,我們可以使用 bottom() 方法

echo "top_element=".$list->top()."<br>";
echo "bottom_element=".$list->bottom();

使用 add() 方法在連結串列中插入值
我們可以使用 add() 方法通過指定位置在連結串列中插入元素。該方法有兩個引數。
第一個引數是要插入專案的索引,第二個引數是要插入的專案。例如,以 2 和 50 為引數呼叫 add() 方法並呼叫 displayList() 方法。

$list->add(2,50);
displayList($list);

PHP          link.php

注意插入點會從第n個參數下插入

php陣列如何實作佇列

在 PHP 中,佇列可以使用陣列來實作。一個佇列就是一個先進先出的資料集合。我們可以在佇列的頭部插入數據,同時從佇列的尾部取出數據。

PHP             queue.php

class Queue{
	protected $queue=[];
	//從尾部加入陣列
	public function enqueue($item){
		array_push($this->queue, $item);
	}
	//從頭部取出陣列
	public function dequeue(){
		if (empty($this->queue)){
			return flase;
		}
		return array_shift($this->queue);
	}
	//獲取陣列的長度
	public function length (){
		return count($this->queue);
	}
	//判斷是否為空值
	public function isEmpty(){
		return empty($this->queue);
	}
}
$queue=new Queue();
$queue->enqueue('a');
$queue->enqueue('b');
$queue->enqueue('c');
$length = $queue->length();
echo $length."<br>";
echo $queue->dequeue()."<br>";
echo $queue->dequeue()."<br>";
echo $queue->dequeue()."<br>";

使用函數

array_push()   在尾端加入陣列
—  array_shift ()   删除陣列中首個元素,并返回被删除元素的值。
—  count()   計算陣列數量
—  empty()   陣列是否為空