Home  >  Article  >  Backend Development  >  Object-oriented PHP data structure design patterns

Object-oriented PHP data structure design patterns

WBOY
WBOYOriginal
2024-05-08 08:57:02530browse

In OOP PHP, there are the following data structure design patterns: array mode: represents an ordered sequence of elements; linked list mode: represents a growable ordered sequence of elements; stack mode: represents a last-in-first-out sequence of elements; queue mode: represents First-in-first-out sequence of elements; tree mode: represents a hierarchical structure; graph mode: represents a structure with nodes and boundaries.

面向对象的 PHP 数据结构设计模式

Object-oriented PHP data structure design pattern

Introduction

In oriented In object programming (OOP), design patterns provide a reusable and maintainable solution to common programming problems. This article will explore some commonly used data structure design patterns in OOP PHP and their practical cases.

Array pattern

Array pattern is a simple design pattern used to represent a series of sequentially arranged elements. In PHP, you can create arrays using the array built-in function.

// 創建一個陣列
$my_array = ['apple', 'banana', 'cherry'];

// 訪問陣列元素
echo $my_array[0]; // 會輸出 "apple"

Connected serial mode

Connected serial mode is used to represent a series of elements that are arranged in sequence and can grow or shrink. In PHP, you can use the LinkedList class or the SplDoublyLinkedList class to implement link lists.

// 使用 LinkedList 類創建連結串列
$my_list = new LinkedList();
$my_list->add('apple');
$my_list->add('banana');

// 訪問連結串列元素
echo $my_list->get(0); // 會輸出 "apple"

Stacking mode

Stacking mode is used to represent a sequence of last-in-first-out (LIFO) elements. In PHP, stacking can be implemented using the SplStack class.

// 創建一個堆疊
$my_stack = new SplStack();
$my_stack->push('apple');
$my_stack->push('banana');

// 從堆疊中彈出元素
echo $my_stack->pop(); // 會輸出 "banana"

Queue mode

The queue mode is used to represent a series of first-in, first-out (FIFO) elements. In PHP, you can use the SplQueue class to implement a queue.

// 創建一個佇列
$my_queue = new SplQueue();
$my_queue->enqueue('apple');
$my_queue->enqueue('banana');

// 從佇列中出列元素
echo $my_queue->dequeue(); // 會輸出 "apple"

Tree mode

Tree mode is used to represent data with a hierarchical structure. In PHP, you can use nested arrays or objects to implement tree structures.

// 使用巢狀陣列表示樹狀結構
$my_tree = [
    'apple' => [
        'red_apple',
        'green_apple'
    ],
    'banana' => [
        'yellow_banana',
        'green_banana'
    ]
];

// 使用物件表示樹狀結構
class Node {
    public $value;
    public $children = [];

    public function __construct($value) {
        $this->value = $value;
    }

    public function addChild($node) {
        $this->children[] = $node;
    }
}

// 使用物件建立樹狀結構
$my_tree = new Node('fruits');
$my_tree->addChild(new Node('apple'));
$my_tree->addChild(new Node('banana'));

Graphic mode

Graphic mode is used to represent graph structures with nodes and edges. In PHP, graphics can be implemented using arrays or objects.

// 使用陣列表示圖形
$my_graph = [
    'A' => ['B', 'C'],
    'B' => ['D', 'E'],
    'C' => ['F'],
    'D' => [],
    'E' => [],
    'F' => []
];

// 使用物件表示圖形
class Vertex {
    public $value;
    public $edges = [];

    public function __construct($value) {
        $this->value = $value;
    }

    public function addEdge($vertex) {
        $this->edges[] = $vertex;
    }
}

// 使用物件建立圖形
$my_graph = new Vertex('A');
$my_graph->addEdge(new Vertex('B'));
$my_graph->addEdge(new Vertex('C'));

The above is the detailed content of Object-oriented PHP data structure design patterns. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn