pos()
En PHP, pos() es una función de array integrada que devuelve el valor del elemento en la posición actual del puntero interno del array.
En PHP, la función pos() es una función de array integrada que devuelve el valor del elemento en la posición del puntero interno del array. Todo array de PHP lleva un puntero interno que rastrea cuál elemento es el "actual"; pos() lee el valor bajo ese puntero sin moverlo.
pos() es un alias de current() y ambas se comportan de manera idéntica. Dado que los alias pueden desaconsejarse o eliminarse en versiones futuras de PHP, current() es el nombre que se debe preferir en código nuevo — pos() se documenta aquí principalmente para que lo reconozcas en proyectos heredados.
Esta página cubre la sintaxis de la función, qué devuelve (incluyendo el caso especial de un array vacío), cómo se relaciona con las demás funciones de puntero y cuándo es la elección adecuada usar el puntero.
Sintaxis de la función pos()
pos() recibe un único argumento — el array a inspeccionar — y devuelve el valor del elemento al que apunta actualmente el puntero interno.
pos(array $array): mixed$array— el array del que se lee. Se pasa por referencia, por lo que la variable array debe ser asignable (no se puede pasar un literal).- Valor de retorno — el valor del elemento actual, o
falsesi el array está vacío o el puntero ha avanzado más allá del último elemento.
Dado que un elemento puede contener legítimamente el valor
false, nunca uses el valor de retorno por sí solo para comprobar "¿hubo un fallo?". Usakey()(que devuelvenullal final) cuando necesites detectar el fin de un array de forma fiable.
Ejemplo de uso de la función pos()
Veamos algunos ejemplos prácticos de cómo se puede usar la función pos() para recuperar el valor en la posición actual del puntero interno.
Ejemplo de uso de la función pos()
<?php
$colors = ['red', 'green', 'blue'];
// Set the current position to the first element
reset($colors);
// Retrieve the value of the element at the current position
echo pos($colors) . '-'; // Output: red
// Move the current position to the next element
next($colors);
// Retrieve the value of the element at the current position
echo pos($colors) . '-'; // Output: green
// Move the current position to the next element
next($colors);
// Retrieve the value of the element at the current position
echo pos($colors); // Output: blueEn este ejemplo, tenemos un array llamado $colors que contiene tres elementos. Establecemos el puntero interno en el primer elemento usando reset() y luego recuperamos el valor en esa posición usando pos(). A continuación, avanzamos el puntero con next() y leemos el valor de nuevo, repitiéndolo una vez más para llegar al último elemento. El punto clave: pos() por sí misma nunca mueve el puntero — solo lo hacen reset(), next(), prev() y end().
Lectura más allá del final
Una vez que el puntero avanza más allá del último elemento, pos() devuelve false. Por eso false es ambiguo como "valor actual" — puede significar "el elemento es false" o "nos hemos pasado del final":
Cuando realmente necesitas saber si has llegado al final, combina pos() con key(): key() devuelve null más allá del último elemento, mientras que una clave real (0, 1, …) indica que el puntero aún es válido.
pos() y las demás funciones de puntero
pos() es una pieza del conjunto de herramientas de puntero interno de PHP. Cada función tiene un papel distinto:
| Función | Qué hace |
|---|---|
current() | Devuelve el valor actual (el nombre estándar; pos() es su alias). |
key() | Devuelve la clave actual en lugar del valor. |
next() | Avanza el puntero y luego devuelve el nuevo valor actual. |
prev() | Retrocede el puntero y luego devuelve el nuevo valor actual. |
reset() | Envía el puntero al primer elemento. |
end() | Envía el puntero al último elemento. |
Cuándo usar el puntero interno
Para la mayoría de los recorridos de arrays, un bucle foreach es más claro y seguro — no toca en absoluto el puntero interno del array. Recurre a pos()/current() y sus funciones relacionadas solo cuando necesites un control manual y detallado sobre la posición: por ejemplo, inspeccionar el elemento actual dentro de un bucle while (key($arr) !== null), o recorrer un array en dos direcciones. Si simplemente quieres cada elemento en orden, prefiere foreach.
Conclusión
La función pos() devuelve el valor en el puntero interno de un array sin moverlo, y es un alias heredado de current(). En código nuevo prefiere current(); combínala con next(), prev(), reset() y end() para recorrer un array manualmente — y recuerda que un retorno false puede significar tanto un valor false como el fin del array, así que usa key() cuando la distinción importe.