Autor Tema: Dudas PHP  (Leído 398 veces)

Desconectado WildWolf360

  • PHPer@ Fijo
  • ***
  • Mensajes: 192
  • Karma: 8
    • Ver Perfil
Dudas PHP
« en: 04 de Abril de 2010, 14:32:26 pm »
Hola muy buenas. Os traigo un par de códigos, con los que ando bastante perdido la verdad. Haber si me podéis ayudar...

Lo primero es el if:

<?php
$test 
32;
if (
$test 40) {
   echo 
"Yes, $test is greater than 40.";
   } elseif (
$test 35) {
   echo 
"Yes, $test is greater than 35.";
   } elseif (
$test 30) {
   echo 
"Yes, $test is greater than 30."//Se printea esta en la pantalla
   
} else {
   echo 
"No, $test must be less than 40 and 35 and 30.";
   }
?> 


¿Porqué sale "is greater than 30" si 32 no es > que 40? 32 no es mayor que 40... ¿Podríais explicarmelo porfavor?

Y la segunda:

for($i=1;$i<=10;$i++) $password .= $letras[rand(0,30)];

Esto se leerlo como que empieza a contar desde el 1 y termina en el 10 de uno en uno. ¿Pero qué quiere decir lo demás? (digo a partir del .=)

Muchísimas gracias :)

Comunidad PHPeros

Dudas PHP
« en: 04 de Abril de 2010, 14:32:26 pm »

Desconectado Ruben

  • PHPerit@
  • *
  • Mensajes: 21
  • Karma: 1
  • Sexo: Masculino
    • Ver Perfil
Re:Dudas PHP
« Respuesta #1 en: 04 de Abril de 2010, 15:22:14 pm »
<?php
$test 
32;
if (
$test 40) {
   echo 
"Yes, $test is greater than 40.";
   } elseif (
$test 35) {
   echo 
"Yes, $test is greater than 35.";
   } elseif (
$test 30) {
   echo 
"Yes, $test is greater than 30."//Se printea esta en la pantalla
   
} else {
   echo 
"No, $test must be less than 40 and 35 and 30.";
   }
?> 


¿Porqué sale "is greater than 30" si 32 no es > que 40? 32 no es mayor que 40... ¿Podríais explicarmelo porfavor?

No tiene nada que ver. El primer condicional ($test>40) continua con un "elseif", es decir, que si no se cumple la condición, se evalua la siguiente.
En tu caso, las dos primeras condiciones son falsas, por lo que las salta, pero al llegar a la tercera, al ser verdadera, se ejecuta.

for($i=1;$i<=10;$i++) $password .= $letras[rand(0,30)];

Esto se leerlo como que empieza a contar desde el 1 y termina en el 10 de uno en uno. ¿Pero qué quiere decir lo demás? (digo a partir del .=)

Ese bucle sirve (supongo) para generar una contraseña aleatoria de 9 letras.
Cada vez que se ejecuta el bucle, añade un carácter a la variable $password eligiendo en cada caso una posición del array "$letras"
rand(x,y); sirve para generar de forma aleatoria un número entre los dos especificados (x,y).

« Última modificación: 04 de Abril de 2010, 15:30:08 pm por Ruben »

Desconectado WildWolf360

  • PHPer@ Fijo
  • ***
  • Mensajes: 192
  • Karma: 8
    • Ver Perfil
Re:Dudas PHP
« Respuesta #2 en: 04 de Abril de 2010, 18:42:43 pm »
No tiene nada que ver. El primer condicional ($test>40) continua con un "elseif", es decir, que si no se cumple la condición, se evalua la siguiente.
En tu caso, las dos primeras condiciones son falsas, por lo que las salta, pero al llegar a la tercera, al ser verdadera, se ejecuta.

Ese bucle sirve (supongo) para generar una contraseña aleatoria de 9 letras.
Cada vez que se ejecuta el bucle, añade un carácter a la variable $password eligiendo en cada caso una posición del array "$letras"
rand(x,y); sirve para generar de forma aleatoria un número entre los dos especificados (x,y).

Ajá. ¿Entonces el Elseif es simplemente para cuando no se cumple la condición?

Muchísimas gracias ;)