jueves, 27 de septiembre de 2007

Cosas raras en PHP

PHP es un lenguaje que si tiene algo que pueda definirlo se llama inconsistencia. Es un lenguaje puramente inconsistente y lleno de cosas un tanto extrañas.
Podemos hablar de que cada base de datos se maneja de forma diferente, las funciones para mysql son totalmente diferentes que las de oracle por ejemplo.
Cada conjunto de funciones tiene un aspecto diferente lo que lo hace algo caótico. Eso entre otras cosas.
Como ejemplo una muestra de las particularidades de PHP. Podemos parar un parámetro por referencia(E/S) aunque el autor de la función haya especificado que se tiene que pasar por valor (E). Lo cual me deja totalmente perplejo.
Para verlo podemos escribir este sencillo programa:

/**
* La funcion testA pone iguala la variable $A a 5 pero no devuelve nada
*
* @param $A Variable de entrada
*/
function testA($A)
{
$A = 5;
}

//Declaramos el valor de $A
$A = 0;

//Somos decentes y pasamos la variable por valor
testA($A);
echo $A."\n";

//Somos gamberros y la pasamos por referencia
testA(&$A);
echo $A."\n";


Y los valores de salida son:
0
5

Como podemos ver a pesar de que en la función se especifica que el parámetro es por valor hemos forzado que sea pasado por referencia. Un poco fuerte la cosa.

No hay comentarios: