PHP-TUT-06 Estructuras de control de flujo

Facebooktwittergoogle_pluslinkedinmailFacebooktwittergoogle_pluslinkedinmail

En este artículo vamos a conocer dos conceptos fundamentales de cualquier lenguaje de programación actual. Se trata de los condicionales y los bucles. Si ya conoces JavaScript u otros lenguajes estas estructuras te resultarán sumamente familiares. De hecho su utilidad y sintaxis son muy similares a las de otros lenguajes de script o de Programación Orientada a Objetos. Sin embargo, el uso que de estas estructuras se hace en PHP presenta los matices propios de un lenguaje que corre en el lado del servidor, en lugar de hacerlo en el lado del cliente. En todo caso, este artículo está pensado para que aprendas lo necesario de estas estructuras, tanto si tienes conocimientos o experiencia previos, cómo si no.

CONDICIONALES

Los condicionales se emplean para determinar si una determinada sentencia o grupo de sentencias se ejecutarán o no, en base al cumplimiento de determinadas condiciones. La estructura condicional más simple obedece al siguiente esquema:

if (condición) {
    sentencias;
}

La palabra reservada if () evalúa la condición que aparece entre paréntesis. Si ésta resulta ser cierta, se ejecuta el conjunto de sentencias que aparecen entre { y }. Si la condición no es cierta, estas sentencias no se ejecutan. Mira el script condicionalSimple.php.

Fíjate en que, en primer lugar, declaramos una variable asignándole un valor. En realidad, esta variable podría proceder de cualquier otro proceso en este script o en cualquier otro, pero para los efectos didácticos, así nos vale. A continuación, tenemos dos condicionales. En el primero se evalúa si el valor de la variable es mayor que 18 (observa que se usa el operador comparativo > -mayor que-). Como la condición resulta ser cierta, la sentencia que muestra el texto correspondiente se ejecuta. En el segundo condicional se comprueba si el valor es mayor que 65. Como no lo es, la sentencia comprendida en el condicional no se ejecuta.

Las condiciones que se evalúan en estas estructuras son comparaciones entre valores que se representan mediante los operadores de comparación recopilados en la siguiente tabla:

OPERADOR NOMBRE SIGNIFICADO
== IGUALDAD Para que la condición se cumpla, el valor que aparece a la izquierda del operador debe ser igual que el que aparece a la derecha. No confundir con el operador de asignación, que es un solo signo = en lugar de dos.
< MENOR QUE Para que la condición se cumpla, el valor a la izquierda del signo debe ser menor que el de la derecha.
> MAYOR QUE Para que la condición se cumpla, el valor a la izquierda del signo debe ser mayor que el de la derecha.
<= MENOR O IGUAL QUE Para que la condición se cumpla, el valor a la izquierda del signo debe ser menor o igual que el de la derecha.
>= MAYOR O IGUAL QUE Para que la condición se cumpla, el valor a la izquierda del signo debe ser mayor o igual que el de la derecha.
!= DISTINTO DE Para que la condición se cumpla, el valor a la izquierda del operador debe ser diferente del que hay a la derecha.
! NEGACIÓN Para que el condicional se evalúe como cierto, la condición que aparece a continuación debe ser falsa.
=== IGUALDAD ESTICTA (también llamado IDENTIDAD) Para que el condicional se evalúe como cierto, el valor o expresión de la derecha debe ser igual que el de la izquierda del operador, y del mismo tipo.
!== NO IGUALDAD ESTICTA (también llamado NO IDENTIDAD) Para que el condicional se evalúe como cierto, el valor o expresión de la derecha debe ser diferente al de la izquierda del operador o, aún siendo igual, ser de diferente tipo.

Cuando el grupo de sentencias cuya ejecución depende de un condicional está formado por una única sentencia, ésta se puede poner, sin llaves, en la misma línea del condicional. Así pues, el ejemplo anterior se podría haber acortado del siguiente modo:

La sentencia condicional if() proporciona una salida alternativa para el caso de que la comparación resulte no ser cierta, mediante la palabra reservada else. Observa el script condicionalElse.php:

Cuando se evalúa la condición, si resulta ser cierta, se ejecuta el bloque de sentencias que aparece inmediatamente debajo de dicha evaluación. Si no es cierta, se ejecuta el bloque de sentencias comprendidas en la estructura else.

Una condición no tiene por qué ser tan simple como las que aparecen en los ejemplos que acabamos de ver. PHP contempla el uso de condiciones múltiples unidas mediante operadores lógicos. Éstos aparecen recogidos en la siguiente tabla:

OPERADOR NOMBRE SIGNIFICADO
&& AND Evalúa que se cumplan las dos condiciones que une.
|| OR Evalúa que se cumpla, al menos, una de las dos condiciones que une.
xor OR EXCLUSIVO Evalúa que se cumpla una, y sólo una, de las dos condiciones que une.

Si unimos dos condiciones mediante, digamos, el operador &&, se formará una condición compuesta que resultará ser cierta si las dos condiciones simples que la forman lo son a su vez. Veamos un ejemplo en el script condicionalAnd.php:

Observa la condición múltiple en el condicional. Se evalúa que el valor de la variable $edad sea mayor que 18 y menor que 66. Si alguna de ambas condiciones resultara no ser cierta, la condición completa sería falsa. Prueba a modificar el código estableciendo el valor de la variable en 15, por ejemplo. Resulta que la segunda condición se cumple (es menor que 66), pero la primera no. Así pues, el mensaje que aparece en la página es el que informa de que el usuario no está en edad de trabajar.

Cuando se emplea el operador || (OR) basta con que se cumpla una de las dos o más condiciones simples que forman la condición compuesta, para que ésta resulte ser cierta. Por ejemplo, mira el siguiente condicional:

if ($edad > 18 || $edad == 16)

Esta condición resultará ser cierta si la variable es mayor que 18 o, si aún siendo menor, contiene el valor 16.

Por supuesto, podemos combinar varias condiciones y operadores lógicos para obtener una condición compuesta tan estricta como sea necesario. Por ejemplo, si queremos saber si una persona, en virtud de su edad, puede ocupar un puesto de trabajo. En España, con la vigente legislación laboral, una persona puede trabajar a partir de los 18 años, o a partir de los 16 siendo necesario, en este caso, un permiso paterno. El condicional para determinar si un candidato cumple estos requisitos sería el siguiente:

if ($edad > 17 || ($edad > 15 && $permisoPaterno == "S"))

Como ves, se pueden combinar distintas condiciones, para obtener la evaluación necesaria en cada caso.

Otra posibilidad es unir dos condiciones simples mediante el operador or exclusivo (xor). Esto hace que la condición compuesta sea cierta si una de las condiciones simples es cierta y la otra no. Si ninguna es cierta, o lo son las dos, la condición compuesta se evalúa como falsa.

Los condicionales admiten una variante cuando hay que evaluar varias condiciones seguidas, mediante la palabra reservada elseif. Supongamos que tienes que evaluar a qué rango de edades pertenece el usuario. Observa el script usoDeElseif.php:

Carga esta página en el navegador para comprobar su funcionamiento. Cambia el valor asignado a la variable $edad por otros valores y recarga la página para comprobar cómo funciona. Verás que, según el valor que le asignes a la variable, te sale un resultado u otro. Tomemos un momento para aclarar el funcionamiento de un condicional que emplea la cláusula elseif. Como ves, ésta va siempre seguida de una condición. Las condiciones se evalúan en forma secuencial, de modo que, si la primera es falsa, se evalúa la segunda. Si ésta es falsa, se evalúa la tercera. Cuando una condición resulta ser verdadera, no se evalúan las siguientes. Si ninguna es verdadera, se ejecuta el último bloque de sentencias, aquél que está comprendido en la cláusula else.

Existe otro modo de hacer este tipo de evaluaciones secuenciales, mediante la estructura switch ()…case. Observa el script conmutador.php, a continuación:

En primer lugar, carga el script en el navegador para ver qué ocurre. La sentencia switch evalúa una variable. Cada cláusula case evalúa un posible valor de dicha variable. La limitación es significativa. No podemos evaluar si la variable tiene un contenido mayor o menor que un valor determinado. Sólo podemos evaluar la igualdad implícita con valores concretos. Fíjate en que cada cláusula case finaliza con el signo de dos puntos (:). Además, el bloque de sentencias comprendido en cada cláusula case debe terminar siempre con la sentencia break;. Esto evita que se sigan evaluando posibilidades cuando se ha encontrado una coincidencia. Por último, quiero llamar tu atención sobre el caso específico default. Aquí colocamos un bloque de sentencias que se ejecutarán si no se ha dado ninguno de los casos evaluados anteriormente. La cláusula default y el correspondiente bloque de instrucciones son opcionales. Quiero que conozcas, también, un detalle importante en los condicionales. Cuando la comparación se establece entre valores alfanuméricos, el intérprete los compara literalmente, teniendo en cuenta las mayúsculas y las minúsculas. Así pues, el valor "Italia" no es lo mismo que "ITALIA". Más adelante aprenderemos a obviar esta situación cuando lo necesitemos.

Para terminar con los condicionales vamos a conocer el operador ?:, llamado, también, operador ternario. Permite establecer uno de dos posibles valores en una variable según sea cierta o no una condición. La sintaxis genérica de este condicional es la siguiente:

$variable = (condición) ? verdadero : falso;

El operador evalúa la condición. Si se cumple, le asigna a $variable el valor verdadero. Si no se cumple, le asigna el valor falso. Una vez más, mira un ejemplo de uso en el script operadorTernario.php:

BUCLES

Los bucles son unas estructuras de control que permiten que una secuencia determinada de instrucciones, conocida genéricamente como cuerpo del bucle, se ejecute más de una vez. Estas estructuras son muy útiles para repasar el contenido de un fichero, una matriz, una base de datos, etc. Dentro de los bucles se consideran dos tipos principales: aquéllos que se ejecutan atendiendo a una condición numérica y aquéllos que se ejecutan en función de una condición no necesariamente numérica. A continuación vemos los dos tipos detalladamente.

BUCLES BASADOS EN UNA CONDICIÓN NUMÉRICA

Cuando necesitamos que una secuencia de instrucciones se ejecute n veces recurrimos a la estructura for(). Está definida mediante una variable de control, que es la encargada de determinar el número de iteraciones. La estructura es similar a la empleada en otros lenguajes de script, y obedece al siguiente patrón:

for (inicio; condicion; paso) {
    cuerpo del bucle;
}

En este esquema, inicio es el valor inicial que se le asigna a la variable de control, condicion establece el valor que se debe alcanzar para que se deje de ejecutar el bucle, y paso es la forma en que se modifica la variable de control. Dicho así quizá suene un poco críptico, así que veamos el funcionamiento mediante un código que lo aclara. Es el script bucleFor.php:

Cuando cargues este script en el navegador verás que te aparece en la página una cuenta de 1 a 10. Como la sentencia que muestra “algo” en la página es la que compone el cuerpo del bucle, inferimos que ésta se ha repetido diez veces, y de ello se ha encargado la estructura for. Veamos cómo opera. En primer lugar, vemos que, siguiendo el patrón que hemos definido anteriormente, tenemos una variable de control a la que hemos llamado $varCon. En el primer término de la estructura establecemos que el valor inicial de la variable es 1. A continuación, tras el signo de punto y coma, indicamos que el bucle debe iterar mientras que la variable de control tenga un valor menor o igual a 10. Por último, en la tercera parte de la estructura, establecemos que, tras cada iteración, el valor de la variable de control debe ser incrementado en una unidad. Como ves, mediante esta estructura podemos definir un bucle como nos convenga en cada caso.

Llegados a este punto se suscita la cuestión de crear un bucle como el que acabamos de hacer, pero que cuente al revés, de 10 a 1. Pues bien. Conociendo el funcionamiento de esta estructura, la modificaremos de acuerdo a nuestras necesidades. En primer lugar, si hay que contar de 10 a 1, el valor inicial de la variable de control será 10. Como condición tenemos que establecer que el bucle itere mientras el valor sea mayor o igual a 1. Por último indicamos que, tras cada iteración, se decremente la variable de control en una unidad. El bucle nos quedará como aparece en el script descendenteFor.php.

Ahora supongamos que no queremos que la variable de control se modifique en una unidad en cada iteración, sino en dos. Por ejemplo, podemos necesitar la cuenta atrás que acabamos de crear sólo con los números pares. En ese caso, deberemos modificar el tercer término de nuestra estructura for, tal como aparece en el script cambioDePaso.php:

Como ves, la construcción de este tipo de bucles es muy simple de adaptar a las necesidades que tengamos en cada caso. Suponte, por ejemplo, que tienes una matriz que deseas mostrar en la página mediante un bucle. Observa el script matrizConFor.php:

Una vez más, fíjate en cómo se ha definido la estructura del bucle. En primer lugar, el valor inicial de la variable de control se ha establecido en cero. Esto es lógico, puesto que vamos a trabajar con una matriz y el primer elemento tiene el índice 0. Después se ha programado el bucle para que itere mientras la variable de control sea menor que el número total de elementos de la matriz. Como tiene siete nombres, el bucle se ejecutará mientras la variable de control tenga un valor comprendido entre 0 y 6.

Dentro del cuerpo del bucle mostramos un elemento de la matriz usando la variable de control como índice de la misma.

Una operación muy común y muy útil en ocasiones es el anidamiento de bucles. Consiste en meter un bucle dentro de otro, de forma que, para cada iteración del bucle externo, el bucle interno se ejecuta en todas sus iteraciones.

Supón que tienes que hacer un script que simule el recorrido de un edificio de cinco plantas. En cada planta hay cuatro viviendas. Nuestro script debe recorrer cada una de las cuatro viviendas de la primera planta. Entonces pasará a la segunda y recorrerá también todas las viviendas, y así sucesivamente. El código aparece en el script buclesAnidados.php.

Cómo ves, tenemos dos bucles. Cada uno usa su propia variable de control. La del bucle exterior la hemos llamado $piso y se refiere a cada una de las plantas del edificio. La del bucle interior la hemos llamado $puerta y alude a cada una de las viviendas de cada planta. El bucle interior constituye el cuerpo del bucle exterior. Carga el script en el navegador para comprobar el funcionamiento.

BUCLES BASADOS EN UNA CONDICIÓN NO NUMÉRICA

Los bucles también pueden crearse de modo que obedezcan a condiciones no necesariamente numéricas. Por ejemplo, podemos necesitar crear un bucle que recorra una matriz buscando un determinado contenido y se detenga si lo encuentra. Este tipo de iteraciones se basan en la estructura while (), que permite que un bucle itere mientras se cumpla una condición. El formato genérico es el siguiente:

while (condición) {
    cuerpo del bucle;
}

Para entender el funcionamiento observa el script que aparece listado a continuación, llamado  bucleCondicionado.php:

Observa detenidamente el script. Tenemos una matriz con nombres de ciudades del mundo, un variable que actuará como índice de dicha matriz y una variable adicional donde se almacenará cada elemento, sustituyendo al anterior valor, en cada iteración del bucle. Y llegamos al bucle. Vemos, en la condición establecida, que el bucle se ejecutará mientras que la variable $ciudad no tenga el contenido "Londres". Ejecuta el script para ver cómo funciona. En la página aparecen, uno debajo de otro, los nombres de Madrid, Barcelona y Londres. Pero, ¿cómo es eso? ¿No hemos dicho que el bucle se ejecuta mientras no se cumpla la condición de que $ciudad sea Londres? Pues en el momento en que se encuentre este valor, el bucle debería interrumpirse, no mostrar también esta ciudad. ¿No es así? No exactamente. Para entender qué ha ocurrido, debemos analizar detalladamente el comportamiento del script, teniendo en cuenta que la condición se evalúa al principio de cada iteración. Veamos qué ocurre. En primer lugar, el valor de $indice es 0 y el de $ciudad es una cadena vacía. Llegamos a la estructura while y vemos que la condición establece que se ejecutará mientras $ciudad no contenga "Londres". Se evalúa la condición. Como resulta ser cierta, la ejecución entra dentro del bucle. Se busca en la matriz el elemento que corresponde a $indice (todavía es 0). Es el primer elemento de la matriz, cuyo valor es "Madrid". Este valor se almacena en $ciudad. A continuación, esta variable se muestra en la página. La siguiente línea incrementa $indice, con lo que pasa a valer 1. Se acaba el cuerpo del bucle, pasando a la siguiente iteración. De nuevo se evalúa la condición. Como resulta ser cierta, se entra de nuevo en el cuerpo del bucle. En la variable $ciudad se almacena el elemento que corresponde. Como $indice vale 1 (de la anterior iteración) el valor es Barcelona. En la siguiente línea se muestra esta ciudad en la página. A continuación, se incrementa $indice, pasando a valer 2. En este punto termina el cuerpo del bucle, dando paso a la siguiente iteración. La variable $ciudad todavía contiene “Barcelona” cuando se evalúa la condición, así que, una vez más, se entra en el cuerpo del bucle. En él se busca el elemento que corresponde al índice 2 de la matriz. Es Londres. Pero ya estamos dentro del cuerpo del bucle. Ya se ha evaluado la condición, que resultó ser cierta, así que esta ciudad también se muestra. A continuación se incrementa $indice, con lo que pasa a valer 3. En la siguiente iteración se evalúa, una vez más, la condición. Esta vez, resulta ser falsa, por lo que se da por terminado el bucle y se sigue con la ejecución de la siguiente instrucción que hay por debajo del mismo.

Una de las características más llamativa de este tipo de bucles es que se puede dar el caso de que no llegue a ejecutarse ni una sola iteración. Supongamos un código como otroCondicionado.php.

Como ves, es muy parecido al anterior, sólo que la condición resulta ser falsa en la primera evaluación, con lo que no se entra dentro del cuerpo del bucle. Al ejecutarlo verás que no te aparece ninguna ciudad en la lista. Si quieres asegurarte de que tu bucle ejecute, al menos, una iteración, deberás evaluar la condición después del cuerpo del bucle, en lugar de hacerlo antes. Para esto, PHP nos proporciona la estructura do…while, cuyo formato genérico es el siguiente:

do {
    cuerpo del bucle;
while (condición);

Como ves es similar al anterior, pero cambiando el punto donde se evalúa la condición.

EL BUCLE foreach

Desde la versión 4 de PHP se incluyó una instrucción específica para crear un bucle que permita recorrer una matriz completamente de una forma más fácil. Se trata de foreach (). En los ejemplos anteriores de bucles en los que hemos manejado matrices hemos visto que nos hace falta gestionar, casi artesanalmente, una variable que actúe como índice para recorrer cada elemento de la matriz. Esta nueva estructura, que se mantiene vigente en la version 7, nos evita esa necesidad. Además, con las estructuras que hemos estudiado no podemos hacer ese recorrido cuando se trata de una matriz asociativa. En cambio foreach() nos resuelve esto también. Este bucle responde al siguiente formato genérico:

foreach ($matriz as $clave => $valor){
    cuerpo del bucle;
}

Este bucle se repite para cada elemento de la matriz (en inglés las palabras “for each” significan “para cada uno”). Veamos cómo funciona. Observa el script recorreMatriz.php.

Al cargar este script en el navegador veremos cómo aparecen listados todos los elementos de la matriz. Como ves, no hemos tenido que preocuparnos de incrementar el índice. El bucle hace un recorrido secuencial sin intervención de una variable específica. Además, en cada iteración se almacenan, en las variables $clave y $valor el índice de la matriz y el contenido del correspondiente elemento. Por supuesto, esto funciona también aunque la matriz sea asociativa, tal como hemos dicho antes. Observa el script recorreAsociativa.php:

Como ves el uso de foreach para recorrer una matriz es muy cómodo. Además, PHP nos permite anidar bucles foreach para poder recorrer matrices con más de un índice. Para ver un ejemplo, supongamos que tienes una matriz con los datos de tres amigos tuyos, que viven en distintas ciudades. Los datos de cada amigo (nombre, edad y teléfono) constituyen una matriz, cada una de esas matrices es, a su vez, un elemento de otra matriz, identificado por el nombre de cada ciudad. Desde luego, éste no es el sistema más eficiente para gestionar su agenda. PHP nos ofrece mejores opciones, como iremos viendo en posteriores artículos, pero centrándonos en el valor didáctico, este ejemplo nos muestra cómo recorrer completamente una matriz de dos índices de una forma útil y práctica. Presta especial atención al uso que hemos hecho de los bucles en el script recorrerAnidados.php:

Empieza por cargar el script en el navegador, para comprobar su funcionamiento. Verás el listado de tus amigos en cada ciudad. Fíjate en el bucle foreach() externo. Se recorre la matriz principal, llamada $amigos, recuperando el índice de cada elemento (que es el nombre de cada ciudad) en la variable $ciudad. El contenido de cada elemento, que es una matriz con los datos del amigo que vive en esa ciudad, se recupera en $cadaUno. Así pues, en cada iteración del bucle externo, $cadaUno contiene una matriz con los datos de una persona. En el bucle interno se recorre esta matriz, recuperando cada dato individual.

INTERRUPCIONES Y REITERACIONES

Existen dos sentencias específicas para alterar la ejecución de un bucle. Se trata de break y continue. Ya vimos un uso de break cuando conocimos la estructura condicional switch. Aquí, en los bucles, tienes un uso similar. Interrumpe la ejecución del bucle aunque éste no se haya completado. La sentencia continue, por el contrario, interrumpe la ejecución de la iteración actual, pasando a la siguiente.

Veamos un par de ejemplos para comprender el funcionamiento de estas sentencias. En primer lugar, piensa que quieres recorrer la matriz de uno de los ejercicios anteriores, mostrando cada elemento, hasta que encuentres la ciudad Londres. En ese momento, deseas salir del bucle, siguiendo la ejecución en la siguiente línea. Observa el script romperBucle.php, que hace, exactamente, eso.

Cárgalo en el navegador para comprobar su funcionamiento. Observa que, en cada iteración, se comprueba si el contenido de $valor es "Londres". Cuando se cumple la condición, se ejecuta la sentencia break, encargada de interrumpir el bucle y se pasa la ejecución a la siguiente línea inmediatamente por debajo de éste.

Ahora supongamos que quieres mostrar todos los elementos de la matriz, excepto el que corresponde a Londres. Observa el script continuarBucle.php:

Observa la línea del condicional. Cuando $valor contiene "Londres" se interrumpe la ejecución de la iteración actual, para pasar a la siguiente, con lo que, después de "Barcelona", la siguiente ciudad que se muestra es "New York". Ejecuta el script para comprobar su funcionamiento.

OPERADORES A NIVEL DE BIT

Cuando vimos los condicionales, al principio de este artículo, hablamos de los operadores lógicos && (and), || (or), y xor (or exclusivo). Existen unas variantes de estos operadores llamadas operadores a nivel de bit. He dejado este tema para el final del artículo a fin de tenerlo convenientemente aislado, desde un punto de vista meramente didáctico.

Sabemos que cualquier valor es manejado internamente por el ordenador como una secuencia binaria (ceros y unos). Cada uno de estos dígitos binarios es un bit, es decir, la menor unidad de información que puede manejar el ordenador. Nosotros podemos trabajar, desde PHP, con dos (o más) valores a nivel de bit. Para ello contamos con tres operadores que son los siguientes:

  • Operador &. Comprueba cada bit de un valor con el correspondiente bit de otro. Si ambos son 1, el resultado de ese bit es 1. En caso contrario, el resultado es 0.
  • Operador |. Comprueba cada bit de un valor con el correspondiente bit de otro. Si uno de los dos es 1, o lo son ambos, el resultado de ese bit es 1. En caso contrario, el resultado es 0.
  • Operador ^. Comprueba cada bit de un valor con el correspondiente bit de otro. Si uno de los dos es 1 y el otro es 0, el resultado de ese bit es 1. En caso contrario, el resultado es 0. Es decir, el resultado es 1 si los dos bits son diferentes y 0, si son iguales.

Veamos qué significa esto. Consideremos dos valores: 19 y 13. Su representación en binario es la siguiente:

19(2 = 10011
13(2 = 01101

Ahora vamos a realizar las tres operaciones lógicas bit a bit. Esto significa que se hará cada operación del primer bit de la derecha de un valor con el primer bit de la derecha del otro, el segundo bit de un valor con el segundo bit del otro y, así, sucesivamente. Veamos los resultados, tras cada una de las operaciones propuestas, como se muestra a coninuación:

19(2 = 10011
13(2 = 01101

Operación &: El resultado es 00001(2 ó 1(10.
Operación |: El resultado es 11111(2 ó 31(10.
Operación ^: El resultado es 11110(2 ó 30(10.

Para comprobar que todo esto funciona contamos con el script logicosDeBit.php, cuyo listado es el siguiente:

Ejecútalo en el navegador y verá el resultado que te muestra los valores que hemos descrito anteriormente.

Teniendo en cuenta que PHP interpreta, en condiciones lógicas, un valor 0 como false y cualquier otro como true, podemos usar los operadores a nivel de bit en evaluaciones condicionales. Por ejemplo, supongamos una línea de código como la siguiente:

if ($valor_1 & $valor_2)

Si el resultado de la operación es 1 o superior, la condición se evalúa como true. En caso de que el resultado sea 0, la condición se evalúa como false.

     

2 comentarios:

  1. Pingback: PHP-TUT-10 Formularios en PHP (y II) » eldesvandejose.com

  2. Pingback: PHP-TUT-13 Expresiones regulares » eldesvandejose.com

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *