viernes, 7 de agosto de 2009

Generador de Códigos en php

hoy navegando un rato por la red, me encontré con algo interesante como phpobjectgenerator.

pues genera la clase automáticamente, además de las tablas, para que prueben uds mismos les dejo el link.

http://www.phpobjectgenerator.com/

jueves, 6 de agosto de 2009

Bucles en php

Después de responder este post, pude comprobar lo que ignoraba(ya que vengo programando bastante tiempo), todo este tiempo.

Bueno yendo al asunto en efecto, pude comprobar que sucede lo que afirma maycolalvarez
Textualmente
argy comento esto(adicionando a lo que ya habían comentado)

"y además que una variable que se declara dentro de un ciclo termina cuando el ciclo(valga la redundancia ) termina, es decir que la variable existe sólo dentro del ciclo"
maycolalvarez

"No, esto no aplica para php, el ámbito de variables de php sólo se restringe para los bloques de función, no para los ciclos, como resultado toda variable declarada dentro de un ciclo puede accederse fuera de éste, caso contrario de las variables superglobales, que tienen ámbito en todo el script.
En cambio si declaras una variable en el script, en las funciones del mismo script no tendrán acceso a la variable, sino que la re-declararán, a menos que se utilice la palabra global:
Código PHP:
$mivariable="valor principal";
function metodouno(){
echo 'uno:'.$mivariable; //no imprimirá NADA
}

function metododos(){
global $mivariable;
echo 'dos:'.$mivariable; //imprimirá "valor principal"
}

metodouno();
metododos();

esto ocurre porque php no requiere la declaración explícita de variables y no tiene restricción de tipos (sólo PHP5 al paso de parámetros de clases, pero no una restricción de tipos completa)”


argy
"mmmmm??? a ver si te entendi y si me entendiste, una variable declarada dentro de un bucle while, sólo exisitirá dentro del bucle es decir dentro while($i<100){//sólo aqui, pe $var}, ahora me dices que a $var podré acceder desde fuera del while verdad????. como???
por teoría de ámbito de las variables sé que la variable $var existirá sólo dentro de ese bucle while, entonces si me pierdo de algo como imprimo el contenido de esa variable fuera del bucle???, a menos que yo le haya declarado antes del while."


maycolalvarez

“Lo que te explique anteriormente sólo es para PHP, haz la prueba e inventa para que veas, esto no pasaría con C#, ni con java, por eso hay que tener un poco de cuidado con php.
Tu teoría del ámbito es 100% correcta, pero No aplica para php.
y sí, $var tendrá el último valor asignado al terminar el ciclo, prueba y verás, es mejor cuando uno realiza sus propias pruebas ”


pero aquí hay un detalle que cuando configuro el error a E_ALL|E_STRICT
Código PHP:
while($i<10)
{
$j+=$i;
$i++;
}
echo $j;
//aqui de hecho me imprime 45 (CORRECTO).
//PERO
//si no se declara el contador $i y $j, tenemos el siguiente mensaje
//Notice: Undefined variable: i in D:\Web\agp\index.php on line 3

//Notice: Undefined variable: i in D:\Web\agp\index.php on line 5

//Notice: Undefined variable: j in D:\Web\agp\index.php on line 5

//Notice: Undefined variable: i in D:\Web\agp\index.php on line 6

//si no declaramos $j

//Notice: Undefined variable: j in D:\Web\agp\index.php on line 5
?>
Código PHP:
echo '
';
//ahora si declaramos los dos
$k=0;
$m=0;
while($k<10)
{
$m+=$k;
$k++;
}
echo $m;
//imprime el mismo 45 (CORRECTO), pero no nos muestra ningún mensaje más que preocupe.
?> Comprobé realmente sucede lo que afirma maycolalvarez , pero con las salvedades que ya pueden observar, desde mi punto de vista puedo decir que es mejor hacerlo de la segunda forma.