Sign up with your email address to be the first to know about new products, VIP offers, blog features & more.

Indices negativos en un vector con PHP

En la mayoría de los lenguajes de programación de alto y bajo nivel, acceder a un elemento de un vector a través de un índice menor que cero implica acceder a una dirección de memoria que no hemos reservado, y en consecuencia almacenar en un lugar dónde no protegemos el contenido desde el mismo programa.

Para poder usar un índice negativo en el lenguaje C tendremos que declarar otro puntero auxiliar que acceda al espacio de memoria reservado por el anterior para que los menores que cero en ese rango sean equivalentes a sus análogos positivos. El código que ejemplifica este caso:

int a[10] = { /* lo inicializamos a lo que queramos */ };
int *b;
int i;
b = a + 10; /* aquí entra en juego el puntero auxiliar */
for (i = -10; i < 0; i++) {
int x = b[i];
}

Sencillo de entender, pero en PHP la cosa se simplifica con poder usarlo como si de un elemento ubicado en la zona positiva se tratase. Un código de ejemplo para mostrar el funcionamiento en PHP puede ser el siguiente:

$mes[-1] = “Este mes no existe”;
echo “Mes -1: “, $mes[-1], “\n”;
$mes[-100] = “Este mes tampoco existe”;
echo “Mes -100: “, $mes[-100], “\n”;
var_dump($mes);

Y lanzando el script obtenemos lo siguiente:

Mes -1: Este mes no existe
Mes -100: Este mes tampoco existe
array(2) {
[-1]=>
string(18) “Este mes no existe”
[-100]=>
string(23) “Este mes tampoco existe”
}

Sencillo ahora, ¿no? Creo que sobra decir la infinidad de aplicaciones que puede tener este uso. ¿Lo has probado en otros lenguajes?

Leer entrada anterior
Curso ADO.NET con Mono y MySQL – Preparación e instalación

Pasado más de un mes desde la entrada que anunciaba este curso, volvemos a la carga, veamos. Antes de nada,...

Cerrar