Paso por valor y paso por referencia con PHP

Si el otro día hablábamos de la facilidad de usar índices negativos en arrays a través PHP, hoy traemos otra receta para cocinar el paso por valor y el paso por referencia, algo que en algunos lenguajes, como C, es de vital importancia, y que en el caso de PHP nos puede servir de gran ayuda.

Para ilustrar claramente la diferencia entre paso por valor y paso por referencia en una función en PHP, vamos a usar un pequeño script. Prestemos especial atención a las llamadas sumarPorValor() y sumarPorReferencia(), que de entrada vemos como la definición de ambas es similar.

<?php

// Declaramos las funciones

function sumarPorValor($suma, $a, $b) {
  $suma = $a + $b
}

Leer más » 2 Comentarios

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

Leer más » 3 Comentarios

Dennis Ritchie ha muerto

A sus 70 años de edad (1941-2011), Dennis Ritchie, co-fundador del lenguaje C falleció el pasado 9 de Octubre. Parece que no ha tenido demasiada relevancia en la red, mientras que la muerte de archiconocido (y multimillonario) Steve Jobs sí la tuvo, y lo ha eclipsado.

Hemos de tener en cuenta que C es el segundo lenguaje de programación más usado, por detrás de Java y con una cuota de mercado del 17.7% (0.2% menos que el primero y más de un 8% respecto a C++, su seguidor inmediato).

Creo que merece una mención especial y nuestro más profundo respecto a uno de los que, a mi aparecer, ha sido uno de los que más a aportado al mundo de la informática. read more

Leer más » 7 Comentarios