Conceptos básicos de PHP (4)


Bien bien, antes de pasar a los formularios, en este artículo se van a explicar el bucle while y los arrays.

Los whiles son tambien controladores de flujo, concretamente repiten una porción de código tantas veces como nosotros le digamos. A medida que repite esta porción de código, las variables pueden ir cambiando de valor para ir mostrando resultados diferentes en cada repetición.

La sintáxis de while es idéntica a la sintáxis de if, con la particularidad de que cundo entre en la porción de código, la repetirá tantas veces como le digamos. ¿Y como se lo decimos?, pues igual que se lo decimos a if, con una condición. Esta condición se comprobará cada vez que se repita la porción de código. Por lo tanto, cuando la condición deje de ser cierta, dejará de repetir esta porción de código y seguirá examinando el resto del archivo. Veamos algunos ejemplos:

<?php
$variabledecontrol=0;
while($variabledecontrol != 20){

     $variabledecontrol++;
     echo $variabledecontrol;

}
?>

Leamos este código, que siempre viene bien para no liarnos, sobre todo con el while:

1) Mientras que $variabledecontrol no sea igual a 20, haz esto:

2) Incrementa $variabledecontrol en uno

3) Muestra el contenido actual de $variabledecontrol

Bien, es cierto que $variabledecontrol no es igual a 20, por que si lo fuera, no ejecutaría esa porción de código. Y esto es lo que ocurre cuando $variabledecontrol llega a 20 ya que va cambiando de valor en cada repetición. La primera vez que entramos en la porción de código, incrementamos su valor añadiendo ++ a su nombre, por lo que $variabledecontrol vale 1. La segunda vez, antes de entrar otra vez en la porción de código, $variabledecontrol, que vale 1, no será igual a 20 (condición cierta), por lo que seguirá repitiendo la porción de código. Esta segunda vez, volvemos a incrementar $variabledecontrol, que pasará a tener esta vez un valor de 2. Esto se repetirá una y otra vez hasta llegar a 20, donde la condición será falsa, ya que $variabledecontrol si que vale 20, por lo tanto, el interprete de php se olvida del while y sigue su camino.

Cuando carguemos la página y el php se ejecute, en nuestro navegador obtendremos algo tal que así:

1234567891011121314151617181920

El echo va ejecutando religiosamente lo que nosotros le hemos dicho, mostrar por pantalla el valor de $variabledecontrol, pero nos pone los numeritos juntos. La razón de esto es que lo único que mostramos es el número, no mostramos ningún espacio ni ningún salto de linea. Vamos a modificar el código anterior para que el resultado obtenido sea mas claro:

<?php
$variabledecontrol=0;
while($variabledecontrol != 20){
     $variabledecontrol++;
     echo $variabledecontrol . " - ";
}
?>

Hemos añadido en el echo un texto después de la variable usando un punto para separar variable de texto. Ya vimos con anterioridad las diferentes formas de uscar echo, así que esto queda al gusto del consumidor. El resultado obtenido en el navegador sería este:

1 – 2 – 3 – 4 – 5 – 6 – 7 – 8 – 9 – 10 – 11 – 12 – 13 – 14 – 15 – 16 – 17 – 18 – 19 – 20 –

En HTML para poner un salto de linea no basta con darle al enter, el navegador básicamente se lo pasa por el forro. Si queremos mostrar un salto de línea, debemos usar la etiqueta <br> o <br />. Ambas valen para el caso que nos ocupa. por lo tanto, el echo quedaría así:

echo $variabledecontrol . » <br />»;

El resultado en código HTML sería este:

1<br /> 2 <br /> 3 <br /> 4 <br /> 5 <br /> 6 <br /> 7 <br /> 8 <br /> 9 <br /> 10 <br /> 11 <br /> 12 <br /> 13 <br /> 14 <br /> 15 <br /> 16 <br /> 17 <br /> 18 <br /> 19 <br /> 20 <br />

Nuestro navegador interpretaría este código HTML y nos mostraría cada numero en una linea diferente.

Arrays

Pasemos ahora a los arrays. Los arrays no son mas que -a groso modo- un conjunto de variables con el mismo nombre diferenciadas por un índice. Podemos añadir y quitar tantos valores como queramos en un array. Existen muchas formas de dar valores a los arrays, me centraré sólo en unos pocos.

La sintáxis de los arrays se caracteriza por $nombrevariable[índice]. De este modo, podemos tener dos valores en una misma variable con un índice diferente:

<?php
$variable[0]="soy un texto en un array en el índice 0";
$variable[1]="soy un texto duiferente en un array en el índice 1";

echo $variable[0];
echo $variable[1];

?>

Hemos almacenado dos textos diferentes dentro de una misma variable, pero cada uno tiene su propio índice (cero y uno), por lo tanto podemos acceder a cada valor independientemente indicando ese índice.

Cuando no conocemos la cantidad de índices ni el valor de cada índice, podemos usar un bucle como while (existen formas específicas para recorrer arrays como foreach() pero no lo vamos a tratar). La forma de recorrer un array con un while, sería la siguiente:

<?php
$variable[1]="una cosa";
$variable[2]="otra cosa";
$variable[3]="mas cosas";
$variable[4]="conchinchina";
$variable[5]="pelicano";
$variable[6]="sarpullido";
$variable[7]="perico";
$variable[8]="cacafuti";
$variable[9]="guebin";
$variable[10]="zaratrusta";
$variabledecontrol="0";
while($variabledecontrol != 10){
     $variabledecontrol++;

     echo $variable[$variabledecontrol];

}
?>

Esto nos mostraría el contenido de cada índice gracias al bucle y la $variabledecontrol incrementada. En cada repetición del bucle, $variabledecontrol tiene un valor diferente, (1, 2, 3, 4…) por lo tanto, al meterla dentro de los corchetes del array, le estamos pidiendo el índice con valor igual al de la $variabledecontrol. Por lo tanto, cuando $variabledecontrol valga 5, estamos pidiendole $variable[5].

Vamos a complicar un poco esto, supongamos que tenemos el código anterior, no sabemos en que índice está el texto «pelicano» y queremos encontrarlo. Pues al lío:

<?php
$variable[1]="una cosa";
$variable[2]="otra  cosa";
$variable[3]="mas cosas";
$variable[4]="conchinchina";
$variable[5]="pelicano";
$variable[6]="sarpullido";
$variable[7]="perico";
$variable[8]="cacafuti";
$variable[9]="guebin";
$variable[10]="zaratrusta";
$variabledecontrol="0";
while($variabledecontrol  != 10){
     $variabledecontrol++;
     if ( $variable[$variabledecontrol] == "pelicano"){
          echo "pelicano se encuentra en el índice: " . $variabledecontrol;

     }
}
?>

Como ya se ha dicho, gracias a la $variabledecontrol vamos obteniendo los diferentes valores que tiene el array, cuando encontramos el valor que queremos, con la ayuda de nuestro querido if, mostramos el valor de $variabledecontrol que vale igual que el índice en el momento de encontrar nuestro valor.

Otra particularidad de los arrays es que sus indices pueden ser tanto numéricos como alfanuméricos. Cuando trabajamos con formularios, los índices de los arrays habitualmente son alfanuméricos (texto o texto y numeros). Por lo que recorrer un array con índice alfanumérico se complica. Aquií es donde entra foreach(), pero como ya se ha dicho, no lo vamos a tratar. Para definir un índice con texto, se hace entre comillas, recordad, el texto va entrecomillado. Por lo tanto:

$variable[«valor1″]=»perico»;

$variable[«valor3″]=»joselico»;

$variable[«cualquiercosa»]=9;

Como utilidad y para terminar, cuando un array nos toque las narices, podemos ver el contenido completo de un array con sus indices y sus valores gracias a una función llamada print_r():

<?php
$variable["valor1"]="perico";
$variable["valor3"]="joselico";
$variable["cualquiercosa"]=9;

print_r($variable);

?>

La función print_r() ella sola es capaz de mostrar por pantalla texto, por lo tanto no necesitamos el echo. El resultado sería algo así:

Array

(

[valor1] => perico

[valor3] => joselico

[cualquiercosa] => 9

)

Y con esto, se finí. En el próximo artículo: formularios. Talué! x)

5 respuestas a “Conceptos básicos de PHP (4)”

  1. vikerweb dice:

    Bien bien. Un buen blog con documentación bien ejemplificada. Ya era hora de ver cosas como estas y no las 4 tonterias de copy y paste que se marca la gente.

    Saludos.

    • NachE dice:

      Gracias, esto está orientado principalmente al módulo de STI (Sistemas de Telecomunicación e Informaticos) en Granada, pero igualmente sirve para quién no esté en este módulo; los conceptos son los mismos.

      Muy buena tu página también, va directa a mi lector de feeds.

      Un saludo x)

  2. vikerweb dice:

    Home yo estude un CFGS de Desarrollo de Aplicaciones Informáticas (D.A.I) e hize las prácticas en una empresa de mier…

    El módulo de STI no acabo de convencerme porque no daban lo que quería.

    En rsumidas cuentas, si te gusta una cosa, hay que ser práctico. Saludos y sigue así.

    Saludos.

  3. […] ← Conceptos básicos de PHP (4) Sobre Granada y la nueva “Ordenanza de medidas para fomentar y garantizar la convivencia ciudadana en el espacio público” → […]

  4. […] ← Conceptos básicos de PHP (2) Conceptos básicos de PHP (4) → […]