Guia de PHP Código <?php $cadena = 'Hola mundo'; echo $cadena; ?> Análisis Es un código muy sencillo. Simplemente guarda la cadena de caracteres o string "Hola mundo" en la variable $cadena y después se imprime por pantalla. Inicio de un script en PHP El '<?php' inicial indica que lo que sigue debería ser interpretado por PHP (por el intérprete de PHP), lo que significa que es parte del programa y no del HTML. Al final del documento, o cuando pasamos de nuevo a código HTML, se pone un '?>' para indicar a PHP que ignore lo que venga a continuación. La etiqueta de cierre del código en PHP lleva implícito un ';'. Variables Las variables son la base de cualquier lenguaje de programación. Sin ellas, no podríamos guardar información para utilizarla más adelante. PHP no sería capaz de hacer nada dinámico. Veamos, que las variables son necesarias y PHP las tiene. Si tienes experiencia con otros lenguajes de programación, sabrás que en algunos de ellos es necesario declarar el tipo que va a tener una variable, es decir, el tipo de datos que será capaz de guardar. Son los lenguajes fuertemente tipados y en ellos necesitas saber el tipo de una variable antes de guardar cualquier cosa en ella. Son de este tipo lenguajes tan conocidos como C++ y Java. PHP, por otra parte, es un lenguaje debilmente tipado, porque el tipo de la variable corresponde al tipo del valor que está guardando en este momento. Puedes crear una variable para guardar una cadena de caracteres (string), asignar a esa variable un string, reemplazarlo luego por un número, y no habría problemas. Sin embargo, en C++ habría que haber hecho un cast (conversión explícita de tipos) o guardar ese número en otra variable distinta (del tipo correcto). Todas las variables en PHP empiezan por '$' seguido de un identificador. Se diferencia entre mayúsculas y minúsculas, por lo que $wiki es diferente de $Wiki. Para saber más de las variables, puedes mirar en el manual de PHP. El punto y coma y los espacios blancos Otra parte imprescindible para este lenguaje, no así en otros como JavaScript o ActionScript, es finalizar cada comando con un punto y coma (";"). Sin él, el intérprete de PHP nos devolverá un error crítico y ni siquiera iniciará la ejecución del script. Sin embargo PHP ignora completamente los espacios en blanco y los saltos de línea (salvo en las definiciones de cadenas). Esto quiere decir que tanto podemos poner todo un script en una línea como sangrar cada línea tanto como queramos o dejar varias líneas en blanco. Los ejemplos Ejemplo 1 En este ejemplo hacemos uso de 5 operadores básicos utilizados en las expresiones matemáticas. Son la base de todas las operaciones matemáticas y de string que se pueden llevar a cabo en PHP. Estos 5 operadores matemáticos funcionan exactamente igual a como lo hacen en C++ o en Java. Son: 1. 2. 3. 4. 5. Suma (+) Resta (-) Multiplicación (*) División (/) Módulo (%) (el resto de la división por defecto) Para asignar valores a variables utilizaremos =, que a diferencia de el significado matemático de "A es igual que B", en la mayoría de lenguajes de programación significa "A toma el valor de B". A este símbolo se le llama operador de asignación. <?php $x = 25; $y = 10; $z = $x + $y; echo $z; echo "\n"; Código $z = $x / $y; echo $z; echo "\n"; $z = $y * $y * $x; echo $z - 1250; echo "\n"; ?> 35 Salida 2.5 1250 Operadores Aritméticos: $a + $a $a * $a / $a % $a++ $b Suma $b Resta $b Multiplicación $b División $b Resto de la división de $a por $b Incrementa en 1 a $a $a-- Resta 1 a $a Operadores de Cadenas: El único operador de cadenas que existen es el de concatenación, el punto. Pero no os asustéis, PHP dispone de toda una batería de funciones que os permitirán trabajar cómodamente con las cadenas. $a = "Hola "; $b = $a . "Mundo"; // Ahora $b contiene "Hola Mundo" En este punto hay que hacer una distinción, la interpretación que hace PHP de las simples y dobles comillas. En el segundo caso PHP interpretará el contenido de la cadena. $a = "Mundo"; echo = 'Hola $a'; //Esto escribirá "Hola $a" echo = "Hola $a"; //Esto escribirá "Hola Mundo"; Operadores de Comparación: $a $a $a $a $a $a < $b $a menor que $b > $b $a mayor que $b <= $b $a menor o igual que $b >= $b $a mayor o igual que $b == $b $a igual que $b != $b $a distinto que $b Operadores Lógicos: $a AND $b Verdadero si ambos son verdadero $a && $b Verdadero si ambos son verdadero $a OR $b Verdadero si alguno de los dos es verdadero $a || $b Verdadero si alguno de los dos es verdadero $a XOR $b Verdadero si sólo uno de los dos es verdadero !$a Verdadero si $a es falso, y recíprocamente Operadores de Asignación: $a $a $a $a $a $a = $b Asigna a $a el contenido de $b += $b Asigna a $a la suma de $b + $a -= $b Asigna a $a la resta de $a - $b *= $b Asigna a $a la multiplicación de $a por $b /= $b Asigna a $a la división de $a entre $b .= $b Asigna a $a la concatenación de $a seguida por $b Cadenas Las cadenas, también llamadas strings (cadenas en inglés), son un tipo de datos que representan texto. Se llaman cadenas porque están formadas por caracteres únicos encadenados. Como vimos en el ejemplo de "Hola, Mundo", podemos asignarlas a una variable e incluso combinarlas. Sin embargo es importante que conozcamos más sobre ellas y acerca de cómo funcionan. Construcción de Cadenas Una cadena se puede construir de tres maneras: Comillas simples Se basa en la delimitación del texto mediante comillas simples ( ' ). Esta es la forma más sencilla de construir una cadena, pero también la más estricta: Todo lo que aparece en el interior es integramente la cadena. <?php$peras = 3;$manzanas = 2;$frase1 = 'Tengo $manzanas manzanas y $peras peras.';$frase2 = 'Tengo '.$manzanas.' manzanas y '.$peras.' peras';echo $frase1 . ' - ' . $frase2;?> Tengo $manzanas manzanas y $peras peras. - Tengo 2 manzanas y 3 peras. Todo lo que introduzcamos aparecerá como tal y se almacenará como tal. En el caso de que necesitemos incluir una comilla simple en el texto, debemos escaparla. Para ello usaremos la barra invertida ( \ ) antes de la comilla ( ' ). En el caso de que deseemos añadir una barra invertida al final de una cadena o antes de una comilla simple, deberemos escapar la propia barra invertida ( \ ). En cualquier otro caso, la barra invertida aparecerá normalmente. <?phpecho 'Ejemplo de 'cómo escapar varias comillas',de poner una barra invertida delante de una comilla \'o de terminar la cadena con una barra invertida\';?> Ejemplo de 'cómo escapar varias comillas', de poner una barra invertida delante de una comilla ' o de terminar la cadena con una barra invertida\ Como también vemos en este ejemplo, los saltos de línea naturales, es decir saltar la línea en la definición de la cadena, también se mantiene cuando la imprimimos en pantalla. Comillas dobles Cuando necesitamos incluir muchos valores guardados en variables dentro de una cadena, es tedioso tener que utilizar repetidamente el operador concatenador de cadenas ( . ) para unir variables con pedazos de cadena, como hemos visto en el primer ejemplo. Para esto se existe una forma de cadena más flexible, pero con el inconveniente de que hay más cosas que debemos tener en cuenta a la hora de insertar símbolos especiales. Podemos en este caso introducir variables dentro de la cadena y éstas serán interpretadas como su valor, no como su nombre: <?php$peras = 3;$manzanas = 2;$frase1 = "Tengo $manzanas manzanas y $peras peras.";$frase2 = "Tengo \$manzanas manzanas y \$peras peras";echo $frase1 . " - " . $frase2;?> Tengo 2 manzanas y 3 peras. - Tengo $manzanas manzanas y $peras peras. El funcionamiento de la barra invertida es similar a las cadenas de comillas simples, pero se aplica, no sólo también al dólar ( $ ), sino a una serie de letras que, cuando son escapadas, adquieren otro significado: \n \r \t \$ \" \ \### \x## Nueva línea Retorno de carro Tabulador Signo del dólar Comillas dobles Barra invertida Carácter representado por 1, 2 ó 3 cifras ( # ) en código octal Carácter representado por 1 ó 2 cifras en código hexadecimal Operadores aritméticos + Suma dos valores - Resta dos valores (o pasa a negativo un valor) * Multiplica dos valores / Divide dos valores % Resto de dividir dos valores ++ Incremento en una unidad -- Decremento en una unidad Operadores de asignación = Asigna a la parte derecha el valor izquierdo += Realiza la suma de la derecha con la izquierda y la asigna a la derecha -= Realiza la resta de la derecha con la izquierda y la asigna a la derecha *= Realiza la multiplicación de la derecha con la izquierda y la asigna a la derecha /= Realiza la división de la derecha con la izquierda y la asigna a la derecha %= Se obtiene el resto y se asigna .= Concatena el valor de la izquierda con la derecha y lo asigna a la derecha Operadores lógicos ! Operador NO o negacion.Si era true pasa a false y viceversa and Operador Y, si ambos son verdaderos vale verdadero or Operador O, vale verdadero si alguno de los dos es verdadero xor Verdadero si alguno de los dos es true pero nunca ambos && True si ambos lo son || True si alguno lo es Operadores condicionales == Comprueba si dos números son iguales != Comprueba si dos números son distintos > Mayor que, devuelve true en caso afirmativo < Menor que, devuelve true en caso afirmativo >= Mayor o igual <= menor o igual Sentencias de Control: Condicionales PHP al igual que la mayoría de lenguajes de programación necesita de herramientas que permitan tomar decisiones lógicas al servidor. 1. If...Else 2. If...Elseif...Else 3. Switch Estas son todas las posibilidades condicionales que nos permite este lenguaje de programación. If...Else Estas instrucciones son las mas usadas de todos los lenguajes de programación, ya que son las mas básicas. IF (Español: SI) ELSE (Español: SI NO). Estructura: if(expresión) { ... Sentencias; } else { ... Sentencias; } De momento, en ese pedazo de codigo aunque sin nada tangible, estarías diciendo que si la expresión se cumple se realizan sentencias, y en este caso si no se cumpliese la expresión se evaluaría las sentencias que están dentro de else{...}. Un ejemplo para probar en casa: <?php $galletas = true; if($galletas) { echo 'Hay galletas'; } else { echo 'No hay galletas'; } ?> En este ejemplo, estamos dando un valor $galletas y comprobamos si es cierto o no, introduciendolo en la expresión del condicional. Tal cual está, este ejemplo produciría el resultado 'Hay galletas', aunque si cambiasemos $galletas = true; por $galletas = false daría como resultado la segunda sentencia. If...Elseif...Else La estructura de estas instrucciones viene a ser muy similar que la anterior, y de hecho el ejemplo anterior es válido igualmente para este. Estructura: <?php if(expresión) { ... Sentencias; } elseif(expresión) { ... Sentencias; } else { ... Sentencias; } ?> Esta es la sintaxis con la que debe ser usada elseif. Un elseif se ejecutará, siempre y cuando, no haya alguna respuesta verdadera en el if o elseif anterior; luego de que se llega al final de los elseif, y ninguno ha sido verdadero, se ejecutará lo que está dentro de el else final. Pueden haber varios elseif, pero estos estan siempre dentro de un if y un else (sólo uno) final. Otro ejemplo, para dejar en claro el funcionamiento de elseif: <?php $test = 33; if ($test > 40) { echo "Sí, $test es } elseif ($test > 35) echo "Sí, $test es } elseif ($test > 30) echo "Sí, $test es } else { echo "No, $test es } ?> mayor que 40."; { mayor que 35."; { mayor que 30." menor que 40, 35 y 30." En este caso la respuesta sería: Sí, 33 es mayor que 30. Si el valor de $test se cambia a 22, la respuesta sería: No, 22 es menor que 40, 35 y 30. Switch Las instrucciones If...Elseif...Else permiten seleccionar entre más de dos posibles condiciones que puedan ser evaluadas como true o false, pero en ocasiones nos encontrarémos con casos en que queremos evaluar condiciones con una estructura como esta: if($variable==Valor1) { ... Sentencias; } elseif($variable==Valor2) { ... Sentencias; } elseif($variable==Valor3) { ... Sentencias; }else { ... Sentencias; } En las que esperamos realizar una acción determinada según el valor tomado por una variable. Para estos casos la mayoría de los lenguajes de programación incluyen una instrucción que permite "seleccionar" entre los posibles valores de una variable: la instrucción Switch (Español: SELECCIONAR). Estructura: switch($variable) { case Valor1: ... Sentencias; break; case Valor2: ... Sentencias; break; case Valor3: ... Sentencias; break; . . . default: ... Sentencias; } En esta estructura, $variable es la variable que será comparada sucesivamente con cada una de las instrucciones case hasta hallar la que corresponda al valor de $variable, una vez que la encuentre se ejecutarán sucesivamente todas las instrucciones pertenecientes al switch hasta hallar la siguiente instrucción break; esta última hace un salto pasando el control del programa a la instrucción inmediata siguiente fuera del switch. Si ninguna de las instrucciones case corresponde al valor de $variable se ejecutarán solo las instrucciones siguientes al default. Al igual que else, la instrucción default es opcional. Veamos un ejemplo: Usando if...elsefif...else <?php $variable=2; if($variable==1) { echo '$Variable es igual a 1.'; } elseif($variable==2) { echo '$Variable es igual a 2.'; } elseif($variable==3) { echo '$Variable es igual a 3.'; }else { echo '$Variable no es igual ' . 'a 1, 2 o 3.'; } ?> Usando switch <?php $variable=2; switch($variable) { case 1: echo '$Variable es igual a 1.'; break; case 2: echo '$Variable es igual a 2.'; break; case 3: echo '$Variable es igual a 3.'; break; default: echo '$Variable no es igual ' . 'a 1, 2 o 3.'; } ?> El resultado de ambas formas mostradas será: $Variable es igual a 2. Si por el contrario cambiamos $Variable=2 por $Variable=5 al inicio de código el resultado sería: $Variable no es igual a 1, 2 o 3. Una diferencia importante respecto a las instrucciones if...elseif...else es que se requiere de la instrucción break para salir del switch al terminar las instrucciones correspondientes a un case. Esto es así debido a que solo podemos especificar un valor en cada case. Veamos un ejemplo: Usando if...elsefif...else <?php $variable=2; if($variable==1) { echo '$Variable es igual a 1.'; } Usando switch <?php $variable=2; switch($variable) { case 1: //Se ejecuta si $variable vale 1 elseif($variable==2 OR $variable==3) { echo '$Variable es igual a 2 o 3.'; }else { echo '$Variable no es igual ' . 'a 1, 2 o 3.'; } ?> echo '$Variable es igual a 1.'; break; case 2: case 3: //Se ejecuta si $variable vale 2 o 3 echo '$Variable es igual a ' . '2 o 3.'; break; default: //Se ejecuta en cualquier otro caso echo '$Variable no es igual ' . 'a 1, 2 o 3.'; } ?> En cualquiera de las dos formas mostradas, la salida obtenida sería: $Variable es igual a 2 o 3. En este caso, al evaluarse la segunda instrucción case no se encuentra ningún break por lo que siguen ejecutandose las instrucciones siguientes al tercer case, aun cuando $Variable es diferente de 3. Más aún, si borramos el break del tercer case también se ejecutarán las instrucciones siguientes a default, y la salida sería entonces: $Variable es igual a 2 o 3. $Variable no es igual a 1, 2 o 3. Sentencias de Control: Bucles Además de los condicionales, todo lenguaje de programación necesita bucles, PHP no es una excepción. Tipos de Bucles Existen 3 tipos de bucles para PHP, estos son: 1. While 2. Do...While 3. For While Sintaxis: while (condición) sentencia; Su funcionamiento es sencillo, ya que pimero se evalúa que la condición sea verdadera y luego se ejecuta, hasta que la condición pase a ser falsa; una sentencia while (Español: Mientras) puede que no se ejecute ni siquiera una vez, si su condición es inicialmente falsa. Veamos un ejemplo de su uso: <?php $i = 1; while($i <= 3) $i += 1; echo 'La variable $i vale: ' . $i ; ?> Salida: La variable $i vale: 4 Esta sintaxis de la instrucción while solo permite el uso de una sentencia dentro del bucle, en el ejemplo anterior la sentencia $i += 1 es la única que se repite. Un bucle while puede contener varias sentencia, encerrandolas entre llaves ({}) o usando ésta sintáxis alternativa: while (condición): sentencia; sentencia; . . . sentencia; endwhile; Ejemplo con múltiples sentencias: Sintaxis 1 Sintaxis 2 <?php <?php $i = 1; $i = 1; while($i <= 5): while($i <= 5) echo "\$i = $i" . "<br/>"; { $i += 1; echo "\$i = $i" . "<br/>"; endwhile; $i += 1; ?> } ?> Intentemos ahora un ejemplo más complicado. <?php $i = 1; $mult_2_3 = 0; $mult_2 = 0; $mult_3 = 0; echo "Verifiquemos los múltiplos de 2 y 3 (del 1 al 10):<br/>"; echo "--------------------------------------------------<br/>"; while($i <= 10){ if(($i % 2 == 0) AND ($i % 3 == 0) ) { echo "$i es múltiplo de 2 y de 3.<br/>"; $mult_2_3 += 1; }elseif ($i % 2 == 0) { echo "$i es múltiplo de 2.<br/>"; $mult_2 += 1; }elseif ($i % 3 == 0) { $mult_3 += 1; echo "$i es múltiplo de 3.<br/>"; }else { echo "$i no es múltiplo de 2 ni de 3.<br/>"; } $i += 1; //ojo: esta línea es muy importante!!! } echo "--------------------------------------------------<br/>" ; echo "Entre 1 y 10 hay:<br/>"; echo " * '$mult_2_3' múltiplos de 2 y 3.<br/>"; echo " * '$mult_2' múltiplos de 2.<br/>"; echo " * '$mult_3' múltiplos de 3.<br/>"; echo "Los restantes '" . (10 - $mult_2_3 - $mult_2 - $mult_3) . "' números no son múltiplos ni de 2 ni de 3.<br/>"; ?> Salida: Verifiquemos los múltiplos de 2 y 3 (del 1 al 10): -------------------------------------------------1 no es múltiplo de 2 ni de 3. 2 es múltiplo de 2. 3 es múltiplo de 3. 4 es múltiplo de 2. 5 no es múltiplo de 2 ni de 3. 6 es múltiplo de 2 y de 3. 7 no es múltiplo de 2 ni de 3. 8 es múltiplo de 2. 9 es múltiplo de 3. 10 es múltiplo de 2. -------------------------------------------------Entre 1 y 10 hay: * '1' múltiplos de 2 y 3. * '4' múltiplos de 2. * '2' múltiplos de 3. Los restantes '3' números no son múltiplos ni de 2 ni de 3. Analicemos el ejemplo. La variable $i actua como un contador indicandonos cuantas iteraciones han sido llevadas a cabo, además de ser usado para evaluar la condición de bucle while. Las variables $mult_2_3, $mult_2 y $mult_3 son tambien contadores, pero estos nos indican, respectivamente, cuantos múltiplos de 2 y 3 (simultaneamente), solo de 2, y solo de 3 se han encontrado. Una vez completadas las 10 iteraciones se muestran los valores de estas tres variables y se calcula la cantidad de números que no son múltiplos ni de 2 ni de 3. Antes de terminar con el bucle while debemos ocuparnos de dos asuntos importantes: los bucles infinitos y la interrupción de un bucle. Los bucles infinitos son aquellos en que la condición a evaluar siempre es verdadera, por lo que las iteraciones nunca se detienen. Antes de ejecutar un fragmento de código que contenga un bucle (sea while, do...while o for), es importante asegurarse de que el bucle eventualmente se detendrá. En nuestro ejemplo con números primos la sentencia $i += 1 asegura que el contador $i aumente una unidad en cada iteración hasta alcanzar el valor 11, haciendo así falsa la condición con lo que se termina el bucle. Aunque un bucle se termina cuando la condición se evalúa a falsa hay ocasiones en que necesitamos interumpir el bucle abruptamente. La instrucción break (Español: Interrupción) interrumpe inmediatamente la ejecución del bucle y el control se pasa a la instrucción inmediatamente posterior al while. Veamos un último par de ejemplos usando break: Usos de break Para romper bucles infinitos Para interrumpir el bucle <?php <?php $n = 1; $n = 1; $i = 1; $i = 50; while(true){ $mensaje = "No hay múltiplos de 11 entre " . $i = $i + 1; "50 y 100. (¿no hay?)"; $n = $n * $i; while($i < 100){ if ($n > 100) break; if ($i % 11 == 0) } { echo "i = " . $i; $mensaje = "El primer múltiplo de 11 " . echo "<br/>n = " . $n; "entre 50 y 100 es: " . $i; ?> break; } $i += 1; Salida: } echo $mensaje; i = 5 ?> n = 120 Salida: El primer múltiplo de 11 entre 50 y 100 es: 55 Do...While Su uso es similar a while, pero aquí, las sentencias que siguen al do (Español: Hacer) se ejecutan por lo menos una vez y se comprueba la condición luego de la primera iteración; así, si es verdadera la condición se repite por segunda vez, si es falsa se continúa con las sentencias inmediatamente despues de la instrucción while. Tiene sólo una sintaxis. Sintaxis: do { sentencia; sentencia; . . . sentencia; } while (condición); Todo lo explicado referente al bucle while se aplica también al do...while, sin embargo la principal diferencia con este es que el do...while siempre ejecuta al menos la primera iteración, mientras que en el while pudiera no ejecutar ninguna iteración, esto ocurre si la condición es falsa desde antes del inicio del bucle. Un ejemplo con do...while: <?php $i = 5; $n = 1; do { $n = $n * $i; $i -= 1; }while($i > 1); echo "5! es igual a: " . $n ?> Salida 5! es igual a: 120 Claro que, si cambiamos la primera instrucción por $i = 0 el bucle se ejecutará al menos una vez, pues la condición se evalúa al final, y dará la salida (errónea): 0! es igual a : 0 Al programar un bucle es importante reflexionar por un momento si nos conviene usar while o do...while: ¿necesitamos que se evalúe la condición antes de la primera iteración? ¿o el bucle debe entrar al menos una vez antes de evaluar la condición? For Los bucles for (Español: Para) son los más complejos en PHP (y en otros lenguajes de programación). Su sintaxis es la siguiente: Sintaxis: for (1ªexpr; 2ªexpr; 3ªexpr) sentencia; La primera expresión se ejecuta una sola vez al inicio, a continuación la segunda expresión se evalúa como falsa o verdadera, si es falsa el bucle finaliza, en caso contrario el bucle ejecuta la sentencia y luego ejecuta la tercera expresión; completada así la primera iteración se vuelve a evaluar la segunda expresión, y si esta es verdadera se ejecuta nuevamente la sentencia, con esto se completa una segunda iteración. Las iteraciones continúan hasta que la segunda expresión sea evaluada a falso. Estas expresiones son la inicialización, donde se dá el valor inicial a la variable de control del bucle; la condición que inicia cada iteración solo si es evaluada a verdadero; y el paso que incrementa o decrementa la variable de control al final de cada iteración para garantizar que la condición eventualmene evalúe a falso. veamos ahora como se utiliza: <?php for($i = 1; $i <= 5; $i += 1) echo $i . "<br/>"; ?> Salida 1 2 3 4 5 Todas las expresiones de un bucle for pueden dejarse vacías, dejando al bucle iterar infinitamente, aunque en este caso suele interrumpirse con una sentencia break del mismo modo que se hace con el bucle while; Al igual que este último, tiene un par de sintáxis alternativas para múltiples sentencias: Usado endfor Usando corchetes for (1ªexpr; 2ªexpr; 3ªexpr): for (1ªexpr; 2ªexpr; 3ªexpr) sentencia; { sentencia; sentencia; . sentencia; . . . . sentencia; . endfor; sentencia; } Y continuemos ahora con un ejemplo de bucle for con múltiples sentencias: <?php for($i = 2; $i <= 10; $i += 2) { echo "......................<br/>"; //contando números pares echo "i vale: " . $i . "<br/>"; //sus cuadrados echo "i^2: " . $i*$i . "<br/>"; //y sus inversos echo "1/i: " . 1/$i . "<br/>"; } ?> y la salida ...................... i vale: 2 i^2: 4 1/i: 0.5 ...................... i vale: 4 i^2: 16 1/i: 0.25 ...................... i vale: 6 i^2: 36 1/i: 0.166666666667 ...................... i vale: 8 i^2: 64 1/i: 0.125 ...................... i vale: 10 i^2: 100 1/i: 0.1 Bueno, ya sabemos como crear dos tipos de bucles, los while (o do...while) y los for. Aunque puedes hacer codificar programas que hagan lo mismo con cualquiera de los bucles lo más lógico sería usar bucles while cuando no sabes el número de iteraciones que debes hacer (y la condición es del tipo ($respuesta == "Si")), y bucles for cuando si lo sabes (y la condición es del tipo ($X <= 10)). Estructura IF IF es una estructura de control utilizada para tomar decisiones según se cumpla una condición (o varias) o no. Su estructura básica es la siguiente: if(condición/es){ acción a realizar; } else{ acción a realizar en caso de que no se cumpla; } Veamos un ejemplo básico para entenderlo mejor: if($edad>=18){ Comprar cerveza; } else{ echo "No puedes comprar cerveza porque no tienes 18 años"; } e incluso podemos realizar condicionales mas completas como el siguiente caso: if(($edad>=18)&&($dinero>0)){ Puedes comprar cerveza porque tienes 18 y tu dinero es mayor que 0; } else{ echo "O no tienes pelas o no tienes los 18" ; } Estructura SWITCH Toma distintas decisiones en función de distintos estados de la variable.Su sintaxis es la siguiente: switch(expresión){ case valor1: sentencia a ejecutar cuando la expresión tiene como valor valor1 break case valor2: sentencia a ejecutar cuando la expresión tiene como valor valor2 break case valor3: sentencia a ejecutar cuando la expresión tiene como valor valor3 break default: sentencia que se ejecutar por defecto cuando no se cumpla ninguna de las condiciones anteriores Bucle FOR El bucle for se usa para repetir una misma operación un número determinado de veces. Su sintaxis es la siguiente: for(inicialización;condición;actualización){ sentencia a ejecutar mientras se cumpla la condición } El bucle for esta compuesto de 3 partes: - Inicialización: Se ejecuta tan solo al iniciar por primera vez el bucle.En esta parte se suele colocar la variable que contara el numero de veces que se repite el bucle. - Condición: Es la condición que se evaluara cada vez que se inicie el bucle.Esta condición es la que determina la duración del bucle. - Actualización: Sirve para indicar los cambios que queremos ejecutar en las variables cada vez que se ejecuta el bucle. Un ejemplo de su uso seria el siguiente: for($i=1;i<=10;i++){ echo "El número actual es".$i; } De esta forma escribiría todos los números contenidos entre 0 y 10. Bucles WHILE y DO WHILE Bucle WHILE Este bucle se usa cuando queremos repetir la ejecución de unas sentencias un número indefinido de veces. Su sintaxis es la siguiente: while(condición){ sentencia a ejecutar } Para entender mejor el uso de while nos serviremos del siguiente ejemplo: while($color != "rojo"){ color= dame un color; } Este es un ejemplo de lo que se puede hacer con while. En este caso siempre y cuando el color no sea rojo nos dirá que introduzcamos un color. Bucle DO...WHILE Este bucle se usa cuando no sabemos el número de veces que va a ejecutarse un bucle pero lo que si tenemos claro es que por lo menos una vez si que se ejecutara la accion.Su sintaxis es la siguiente: do{ sentencia del bucle }while(condicion) BREAK y CONTINUE BREAK Se usa para detener el bucle y dejar de interpretar el código que sigue después de el break CONTINUE Sirve para volver al principio del bucle desde cualquier parte del bucle. Funciones Funciones Simples. Las funciones son rutinas creadas por el programador para realizar procesos que se repetirán o se usarán más de una vez. Existen funciones simples (sin parámetros de por medio), y funciones con envío de parámetros, los cuáles se pueden procesar según su valor. Esta sería una llamada a una función simple: <?php function Hola(){ $mensaje="Hola amigo"; echo $mensaje; } ?> <html> <head> <title>Mi Página</title> </head> <body> <?php Hola(); ?> </body> </html> Esto hace una función que imprimirá el texto "Hola amigo". Funciones con envío de parámetros. Si necesitas una función a la cuál le puedas pasar parámetros, sería: <?php function Hola2($saludo){ echo $saludo; } ?> <html> <head> <title>Mi Página</title> </head> <body> <?php Hola2("Este es el segundo saludo"); ?> </body> </html> Esto imprimirá: "Este es el segundo saludo". Note las posibilidades dinámicas en operaciones matemáticas o de texto que se pueden lograr "personalizando" el contenido de los valores a enviar. Otro Ejemplo: function Suma($a, $b) { $resultado=$a+$b; echo $resultado; } Si hicieramos: <?php Suma(20,30);?> El resultado sería 50. <?php Suma(15,4);?> El resultado sería 19, y así.