Inicio » Informática profesional. » Programación » Curso de PHP » 3- Programación en PHP II

Curso de PHP

3- Programación en PHP II


Inscríbete ahora y accede a 3 unidades gratis

Evalua el curso de PHP y accede a las 3 unidades gratis con acceso completo al aula virtual donde podrás disfrutar de la inestimable ayuda del tutor y una gran variedad de recursos como videotutoriales, ejercicios resueltos, foros, enlaces, bibliografía, etc....


Introducción

En esta unidad trataremos las estructuras típicas de programación empleadas en la mayoría de los lenguajes: condicionales, bucles for, bucles while, switch, break, continue, etc. También estudiaremos las funciones e introduciremos los conceptos de clase y objeto.
Si ya conoces el mundo de la programación, probablemente estés familiarizado con estos temas y conozcas perfectamente su comportamiento.

Además explicaremos cómo configurar PHP y comentaremos los tipos de errores y advertencias PHP.

Nota: Los códigos de esta unidad se guardarán en c:\apache\htdocs\cursoPHP\unidad3

Inscríbete ahora y accede a 3 unidades gratis

Evalua el curso de PHP y accede a las 3 unidades gratis con acceso completo al aula virtual donde podrás disfrutar de la inestimable ayuda del tutor y una gran variedad de recursos como videotutoriales, ejercicios resueltos, foros, enlaces, bibliografía, etc....


Estructuras de control

  • Todo programa PHP se compone de una serie de sentencias. Una sentencia puede ser una asignación, una llamada a función, un bucle, una sentencia condicional e incluso una sentencia que no haga nada (una sentencia vacía). 
  • Las sentencias normalmente acaban con punto y coma. 
  • Además, las sentencias se pueden agrupar en grupos de sentencias encapsulando un grupo de sentencias con llaves. Un grupo de sentencias es también una sentencia. 

En esta unidad vamos a estudiar los diferentes tipos de sentencias PHP: if, else,  elseif, while, do...while, for, foreach, break, continue, switch.


Inscríbete ahora y accede a 3 unidades gratis

Evalua el curso de PHP y accede a las 3 unidades gratis con acceso completo al aula virtual donde podrás disfrutar de la inestimable ayuda del tutor y una gran variedad de recursos como videotutoriales, ejercicios resueltos, foros, enlaces, bibliografía, etc....


Sentencia if

La construcción if es una de las más importantes características de muchos lenguajes, incluido PHP. Permite la ejecución condicional de fragmentos de código. 
La sintaxis de la estructura if en PHP es la siguiente:

    if (expr)
    sentencia

La expresión expr se evalúa a su valor condicional. Si expr se evalúa como TRUE, PHP ejecutará la sentencia, y si se evalúa como FALSE la ignorará.

Veamos un primer ejemplo:

if ($a > $b)
echo "a es mayor que b";

El código anterior mostraría por pantalla el mensaje 'a es mayor que b' en el caso de que el valor de la variable $a fuera mayor que el valor de la variable $b y no haría nada en otro caso.

En muchas ocasiones nos interesa ejecutar más de una sentencia de forma condicional. Por supuesto, no hay necesidad de encerrar cada sentencia con una cláusula if. En vez de eso, se pueden agrupar varias sentencias en un grupo de sentencias utilizando llaves {}

Por ejemplo, este código mostraría 'a es mayor que b' si $a fuera mayor que $b, y entonces asignaría el valor de $a a $b:

if ($a > $b) {
echo "a es mayor que b";
$b = $a;
}

Nota: Para ejecutar una única sentencia de forma condicional no es necesario encerrar dicha sentencia entre llaves, aunque es posible hacerlo, resultando equivalentes ambas opciones.

Las sentencias if se pueden anidar indefinidamente dentro de otras sentencias if, lo cual proporciona una flexibilidad completa para ejecuciones condicionales.

if ($a > $b) {
    echo "a es mayor que b";
    if ($a > $c)
    echo "también a es mayor que c";
}


Inscríbete ahora y accede a 3 unidades gratis

Evalua el curso de PHP y accede a las 3 unidades gratis con acceso completo al aula virtual donde podrás disfrutar de la inestimable ayuda del tutor y una gran variedad de recursos como videotutoriales, ejercicios resueltos, foros, enlaces, bibliografía, etc....


Sentencia else

Es muy habitual que necesitemos ejecutar una sentencia si se cumple una cierta condición, y una sentencia distinta si la condición no se cumple. Para esto sirve la sentencia else: else extiende una sentencia if para ejecutar una sentencia en caso de que la expresión en la sentencia if se evalúe como FALSE
La sintaxis es la siguiente:

 if (expr)
    sentencia1
 else
    sentencia2

Si expr se evalúa como TRUE, PHP ejecutará la sentencia1, y si se evalúa como FALSE se ejecutará sentencia2.

Por ejemplo, el siguiente código mostraría 'a es mayor que b' si $a fuera mayor que $b, y 'a NO es mayor que b' en cualquier otro caso:

if ($a > $b)
echo "a es mayor que b";
else 
echo "a NO es mayor que b";

De la misma manera que hemos comentado para la claúsula if, también es posible agrupar varias sentencias utilizando llaves {} tras la claúsula else. Veamos un ejemplo:

if ($a > $b){
echo "a es mayor que b";
$b=$a;
}else{ 
echo "a NO es mayor que b";
$a=$b;
}

Nota: La sentencia else se ejecuta solamente si la expresión if se evalúa como FALSE, y si hubiera alguna expresión elseif, sólo si se evaluaron también a FALSE (Ver elseif).

Inscríbete ahora y accede a 3 unidades gratis

Evalua el curso de PHP y accede a las 3 unidades gratis con acceso completo al aula virtual donde podrás disfrutar de la inestimable ayuda del tutor y una gran variedad de recursos como videotutoriales, ejercicios resueltos, foros, enlaces, bibliografía, etc....


Sentencia elseif

La sentencia elseif, como su nombre sugiere, es una combinación de if y else. Como else, extiende una sentencia if para ejecutar una sentencia diferente en caso de que la expresión if original se evalúe como FALSE. No obstante, a diferencia de else, ejecutará esa expresión alternativa solamente si la expresión condicional elseif se evalúa como TRUE. 

Por ejemplo, el siguiente código mostraría 'a es mayor que b', 'a es igual a b' o 'a es menor que b':

if ($a > $b) {
echo "a es mayor que b";
} elseif ($a == $b) {
echo "a es igual que b";
} else {
echo "a es menor que b";
}

Puede haber varios elseifs dentro de la misma sentencia if. En este caso, la primera expresión elseif que se evalúe como TRUE se ejecutaría. 

Nota 1: La sentencia elseif se ejecuta sólo si la expresión if precedente y cualquier expresión elseif precedente se evalúan como FALSE, y la expresión elseif actual se evalúa como TRUE.

Nota 2: En PHP, también se puede escribir 'else if' (con dos palabras) y el comportamiento sería idéntico al de un 'elseif' (una sola palabra). 


Inscríbete ahora y accede a 3 unidades gratis

Evalua el curso de PHP y accede a las 3 unidades gratis con acceso completo al aula virtual donde podrás disfrutar de la inestimable ayuda del tutor y una gran variedad de recursos como videotutoriales, ejercicios resueltos, foros, enlaces, bibliografía, etc....


Sentencia while

Los bucles while son los tipos de bucle más simples en PHP. 
La forma básica de una sentencia while es:

while (expr) 
sentencia

El significado de una sentencia while es el siguiente: 

  • Se ejecutarán la(s) sentencia(s) anidada(s) repetidamente mientras la expresión while se evalúe como TRUE. 
  • El valor de la expresión es comprobado cada vez al principio del bucle, así que incluso si este valor cambia durante la ejecución de la(s) sentencia(s) anidada(s), la ejecución no parará hasta el fin de la iteración (cada vez que PHP ejecuta las sentencias en el bucle es una iteración). 
  • Si la expresión while se evalúa como FALSE desde el principio de todo, la(s) sentencia(s) anidada(s) no se ejecutarán ni siquiera una vez.

Como con la sentencia if, se pueden agrupar múltiples sentencias dentro del mismo bucle while encerrando un grupo de sentencias con llaves.


El siguiente ejemplo muestra por pantalla los números naturales del 1 al 10:

  ejecutar ver código fuente

Importante: No olvides cambiar el valor de la expresión while en cada iteración del bucle porque de otra manera podrías entrar en bucles infinitos (su ejecución no termina nunca, al evaluarse siempre a TRUE la expresión while).

Ejemplo de bucle infinito:

  


Inscríbete ahora y accede a 3 unidades gratis

Evalua el curso de PHP y accede a las 3 unidades gratis con acceso completo al aula virtual donde podrás disfrutar de la inestimable ayuda del tutor y una gran variedad de recursos como videotutoriales, ejercicios resueltos, foros, enlaces, bibliografía, etc....


Sentencia do..while

Los bucles do..while son similares a los bucles while, excepto que las condiciones se comprueban al final de cada iteración en vez de al principio. 
La principal diferencia frente a los bucles while es que se garantiza la ejecución de la primera iteración de un bucle do..while (la condición se comprueba sólo al final de la iteración), mientras que puede no ser necesariamente ejecutada con un bucle while regular (la condición se comprueba al principio de cada iteración, si esta se evalúa como FALSE desde el principio, la ejecución del bucle finalizará inmediatamente).

Sintaxis para los bucles do..while:

do{
sentencia(s)
}while (expr) 

Ejemplo:

  ejecutar ver código fuente

El bucle del ejemplo se ejecutará una sola vez. Después de la primera iteración, cuando la condición se comprueba, se evalúa como FALSE ($i no es mayor que 0) y la ejecución del bucle finaliza.


Inscríbete ahora y accede a 3 unidades gratis

Evalua el curso de PHP y accede a las 3 unidades gratis con acceso completo al aula virtual donde podrás disfrutar de la inestimable ayuda del tutor y una gran variedad de recursos como videotutoriales, ejercicios resueltos, foros, enlaces, bibliografía, etc....


Sentencia for

Los bucles for son los bucles más complejos en PHP. 
La sintaxis de un bucle for es:

for (expr1; expr2; expr3) {
sentencia(s)
}

El significado de una sentencia for es el siguiente: 

  • La primera expresión (expr1) se evalúa (ejecuta) incondicionalmente una vez al principio del bucle.
  • Al comienzo de cada iteración, se evalúa expr2. Si se evalúa como TRUE, el bucle continúa y las sentencias anidadas se ejecutan. Si se evalúa como FALSE, la ejecución del bucle finaliza.
  • Al final de cada iteración, se evalúa (ejecuta) expr3.

Veamos un ejemplo:

  ejecutar ver código fuente

El programa anterior muestra por pantalla los números del 1 al 10. 
En este caso, las expresiones expr1, expr2 y expr3 se podrían interpretar como sigue: desde $i=1 (expr1) hasta $i=10 (expr2), escribir el valor de la variable $i (sentencia) y posteriormente, al final de cada iteración, incrementar el valor de $i (expr3).

Cada una de las expresiones expr1, expr2, y expr3 puede estar vacía. Que expr2 esté vacía significa que el bucle debería correr indefinidamente (PHP implícitamente lo considera como TRUE, al igual que C). Puede que esto no resulte tan inútil como se podría pensar, puesto que a menudo se quiere salir de un bucle usando una sentencia break en vez de usar la condición de for.

Considera los siguientes ejemplos. Todos ellos muestran números del 1 al 10:

Ejemplo 1:

  

Ejemplo 2:

  ejecutar ver código fuente

Ejemplo3:

  ejecutar ver código fuente


Inscríbete ahora y accede a 3 unidades gratis

Evalua el curso de PHP y accede a las 3 unidades gratis con acceso completo al aula virtual donde podrás disfrutar de la inestimable ayuda del tutor y una gran variedad de recursos como videotutoriales, ejercicios resueltos, foros, enlaces, bibliografía, etc....


Sentencia foreach

La sentencia foreach fue incluida en PHP4, en PHP3 no está disponible. La construcción foreach aporta un modo fácil de iterar sobre arrays.

Hay dos sintaxis para la sentencia foreach; la segunda es una extensión de la primera:

foreach(nombre_array as $valor){
sentencia(s)
}
ó
foreach(
nombre_array as $clave => $valor){
sentencia(s)
}

  • La primera forma recorre el array dado por nombre_array. En cada iteración, el valor del elemento actual se asigna a la variable $valor  y el puntero interno del array se avanza en una unidad (así en el siguiente paso, se estará mirando el elemento siguiente).
  • La segunda manera hace lo mismo, salvo que, además, la clave del elemento actual será asignada a la variable $clave en cada iteración.
Nota: Cuando foreach comienza su primera ejecución, el puntero interno del array se reinicia automáticamente al primer elemento del array, por lo que no es necesario llamar a reset() antes de un bucle foreach. Esto significa que inicialmente el puntero interno está señalando al primer elemento del array sin necesidad de forzar este comportamiento.

Veamos algunos ejemplos: Intenta averiguar qué resultado mostrarán los siguientes códigos y compruébalo posteriormente ejecutándolos.

  ejecutar ver código fuente

   ejecutar ver código fuente

   ejecutar ver código fuente


Inscríbete ahora y accede a 3 unidades gratis

Evalua el curso de PHP y accede a las 3 unidades gratis con acceso completo al aula virtual donde podrás disfrutar de la inestimable ayuda del tutor y una gran variedad de recursos como videotutoriales, ejercicios resueltos, foros, enlaces, bibliografía, etc....


Si desea obtener un acceso sin restricciones a los contenidos del curso de PHP y disfrutar de todas las herramientas del aula virtual (Videos explicativos streaming, acceso a los foros, chat, ejercicios resueltos, la ayuda del tutor, audioconferencia, estudio de grabación, test y actividades de autoevaluación, etc...) puede inscribirse completamente gratis y comenzar a realizar de forma inmediata el curso.