Una pila o stack es una estructura de datos que cumple con la regla FIFO(First In – First Out/ Primero en entrar – Primero en Salir), en este articulo construiremos la estructura pila desde PHP con Programación Orientada a Objetos.
📌 Nota: Este artículo forma parte de nuestro Centro de Tutoriales y Recursos. Visita la lista completa para descubrir más técnicas avanzadas, integración de APIs y buenas prácticas de backend.
Es comparable a una pila de platos: solo puedes quitar el que está arriba de todos.
En este artículo, construiremos una clase de Pila utilizando Programación Orientada a Objetos en PHP.
Este articulo se ha actualizado y optimizado para el 2026.
Te puede interesar: Mi Curso de PHP desde CERO
Funcionamiento de la Pila
La pila tiene 2 funciones básica, push y pop.
La función PUSH debe agregar un nuevo elemento a la CIMA de la pila.
La función POP debe sacar de la pila el elemento que este en la CIMA.
Ejemplo
Pila
1 > 2 > 3 > 4 > 5
En este ejemplo el numero 5 esta en la cima, por lo tanto si hacemos PUSH(6), ahora el numero 6 estará en la CIMA.
1 > 2 > 3 > 4 > 5 > 6
Si en este momento hacemos POP el numero que saldrá de la PILA es el 6, si hacemos POP de nuevo saldrá el 5, y si hacemos 2 veces mas POP, saldrán el 4 y 3 el 3 lo que dejara el numero 2 en la pila.
En todo momento debemos saber cual es el valor de la cima, ya que sera el próximo valor que sacaremos.
Pila vacía
Si el valor de la CIMA es igual a CERO significa que la pila esta vacía, la función POP no devolverá ningún valor.
Pila llena
Al crear la pila se debe definir el tamaño de la pila, una vez que la pila halla alcanzado el máximo numero de elementos, no debe permitir agregar mas, la función PUSH es la encargada de manejar este ERROR.
La clase Pila
class Pila {
public $size;
public $elements;
public $top;
public function __construct($size = 10) {
$this->size = $size;
$this->top = 0;
$this->elements = array();
}
}Los elementos esenciales son:
- size: el tamaño de la pila
- elements: los elementos de la pila
- top: el valor de la cima de la pila
En la función constructora de la clase Pila definimos el tamaño de size a 10 por defecto, en caso de no especificarse, TOP=0, la pila inicialmente vacía.
Función o Metodo POP
Para extraer, validamos que la pila no esté vacía (Stack Underflow).
public function pop() {
if ($this->top > 0) {
$element = $this->elements[$this->top];
unset($this->elements[$this->top]); // Limpiamos el espacio
$this->top--;
return $element;
} else {
echo "ERROR: PILA VACÍA" . PHP_EOL;
return null;
}
}En la función POP definimos $element, variable temporal en la que almacenaremos el valor que extraeremos de la pila, verificamos que TOP sea mayor que cero, es decir que la pila no este vacía, hacemos $element igual al elemento que este actualmente en la CIMA o TOP, y después disminuimos TOP, en caso de que TOP sea cero, se muestra el mensaje PILA VACÍA.
Funcion o Metodo PUSH
La función PUSH toma como parámetro un elemento, el elemento que insertaremos en la PILA.
Antes de insertar, debemos verificar si la pila está llena para evitar un desbordamiento (Stack Overflow).
public function push($element) {
if ($this->top < $this->size) {
$this->top++;
$this->elements[$this->top] = $element;
} else {
echo "ERROR: PILA LLENA" . PHP_EOL;
}
}En la función PUSH pasamos como parametro $element, verificamos que la pila no halla alcanzado su capacidad maxima, incrementamos TOP, insertamos elemento en el valor de TOP, en caso de que la pila halla alcanzado su capacidad maxima, es decir TOP igual a SIZE, se muestra el mensaje PILA LLENA
Código Completo
Aquí tienes el ejemplo listo para probar en tu servidor local:
<?php
class Pila {
private $size;
private $elements;
private $top;
public function __construct($size = 10) {
$this->size = $size;
$this->top = 0;
$this->elements = array();
}
public function push($element) {
if ($this->top < $this->size) {
$this->top++;
$this->elements[$this->top] = $element;
} else {
echo "PILA LLENA" . PHP_EOL;
}
}
public function pop() {
if ($this->top > 0) {
$element = $this->elements[$this->top];
$this->top--;
return $element;
}
echo "PILA VACÍA" . PHP_EOL;
return null;
}
}
?>Ejemplo de Uso
Aqui puedes ver un ejemplo de como se usa la clase Pila.
$pila = new Pila(5); $pila->push(1); $pila->push(2); $pila-push(3); $pila->push(4); $pila->push(5); $pila->push(6); echo $pila->pop(); echo $pila->pop(); echo $pila->pop(); echo $pila->pop(); echo $pila->pop(); echo $pila->pop();
Conclusión
Manejar Pilas en PHP es relativamente fácil con esta clase, ahora el algoritmo se puede extrapolar fácilmente para cualquier otro lenguaje de programación, en el futuro veremos aplicaciones de la pila.
Implementar una pila en PHP es un excelente ejercicio para entender cómo se gestiona la memoria y la organización de datos. Aunque PHP ofrece funciones nativas como array_push() y array_pop(), crear tu propia clase te permite añadir reglas de negocio personalizadas, como limitar el tamaño de la estructura.
Te puede interesar: FullMedik Pro – Sistema Medico y Hospitalizacion Profesional