Dans PHP, Stack est une structure de données qui est premier (LIFO, dernier en premier sortie). Dans la pile, l'ajout et l'élimination des éléments sont effectués en haut de la pile. La pile est souvent utilisée pour implémenter certains scénarios qui nécessitent une logique en retard sur la première sortie (LIFO), tels que les opérations d'annulation, l'historique de navigation, etc. Bien que PHP n'ait pas de structure de données de pile intégrée, nous pouvons utiliser des tableaux pour simuler les opérations de pile.
Parmi les opérations communes de la pile, il existe une exigence commune: afficher l'élément supérieur de la pile , mais ne le supprimez pas. C'est ce qu'on appelle le fonctionnement du coup d'œil . Pour les tableaux PHP, bien que nous puissions utiliser la fonction array_pop () pour faire apparaître l'élément supérieur, le but du fonctionnement de Peek est de visualiser uniquement l'élément supérieur de la pile sans modifier l'état de la pile elle-même.
Il existe une fonction très utile dans PHP appelée end () qui renvoie le dernier élément du tableau. Nous pouvons l'utiliser pour implémenter des opérations Powek sur la pile. Jetons un coup d'œil à la méthode de mise en œuvre spécifique.
Nous simulons d'abord une pile simple et utilisons des tableaux PHP pour simuler le fonctionnement de la pile.
<?php
// Initialiser la pile
$stack = [];
// Opération de pile
array_push($stack, 'first');
array_push($stack, 'second');
array_push($stack, 'third');
// L'état de la pile de sortie
print_r($stack);
?>
Exécutez le code et la sortie sera:
Array
(
[0] => first
[1] => second
[2] => third
)
À l'heure actuelle, l'élément supérieur de la pile est «troisième» .
Pour implémenter les opérations PEEK, nous pouvons utiliser la fonction fin () . La fonction end () renvoie le dernier élément du tableau, c'est-à-dire l'élément supérieur de la pile.
<?php
// Peek fonctionner:Afficher l'élément supérieur de la pile
$top = end($stack);
// Élément supérieur de la pile de sortie
echo "L'élément supérieur de la pile est: " . $top . PHP_EOL;
?>
La sortie est:
L'élément supérieur de la pile est: third
La fonction end () déplace le pointeur intérieur du tableau vers le dernier élément, mais ne supprime pas l'élément. Par conséquent, la pile reste inchangée après avoir effectué l'opération PEEK. Cette fonctionnalité est très adaptée aux opérations PEEK dans les structures de pile, car nous n'avons qu'à afficher les éléments en haut de la pile et ne voulons pas modifier la pile.
Le cas d'une pile vide : si la pile est vide, end () renvoie false . Par conséquent, avant d'utiliser fin () , il est préférable de vérifier si la pile est vide pour éviter les erreurs.
<?php
if (!empty($stack)) {
$top = end($stack);
echo "L'élément supérieur de la pile est: " . $top . PHP_EOL;
} else {
echo "La pile est vide,Impossible d'exécuter peek fonctionner。" . PHP_EOL;
}
?>
Pointeur interne du tableau : La fonction End () modifie le pointeur interne du tableau, mais pour les opérations de pile, le changement du pointeur interne n'affectera pas d'autres opérations de la pile (telles que l'entrée de la pile, la sortie de la pile, etc.).
Voici un exemple complet de code qui inclut l'entrée de pile, la sortie de la pile et les opérations PEEK:
<?php
// Initialiser la pile
$stack = [];
// Opération de pile
array_push($stack, 'first');
array_push($stack, 'second');
array_push($stack, 'third');
// Peek fonctionner:Afficher l'élément supérieur de la pile
if (!empty($stack)) {
$top = end($stack);
echo "L'élément supérieur de la pile est: " . $top . PHP_EOL;
} else {
echo "La pile est vide,Impossible d'exécuter peek fonctionner。" . PHP_EOL;
}
// 出栈fonctionner:Retirer l'élément supérieur de la pile
$removed = array_pop($stack);
echo "L'élément supprimé est: " . $removed . PHP_EOL;
// Peek fonctionner:再次Afficher l'élément supérieur de la pile
if (!empty($stack)) {
$top = end($stack);
echo "L'élément supérieur de la pile est: " . $top . PHP_EOL;
} else {
echo "La pile est vide,Impossible d'exécuter peek fonctionner。" . PHP_EOL;
}
?>
Résultat de sortie:
L'élément supérieur de la pile est: third
L'élément supprimé est: third
L'élément supérieur de la pile est: second
En utilisant la fonction End () , nous pouvons facilement implémenter le fonctionnement de la pile, en affichant les éléments en haut de la pile sans modifier l'état de la pile. Cette méthode est simple et efficace, et convient très à des scénarios qui simulent les structures de données de pile dans PHP.