Este documento describe los operadores y estructuras de control en PHP. Explica los diferentes tipos de operadores como aritméticos, de asignación, comparación, lógicos y de cadenas. También describe las estructuras condicionales if/else y switch, y los bucles while, do/while y for. Finalmente, cubre los arrays en PHP y cómo acceder y iterar sobre sus elementos.
1. “Aplicaciones Web dinámicas
con PHP y MySql”
Operadores
y
Estructuras de Control
Sergio Gabriel Rodríguez
http://www.3trex.com.ar
Operadores
• Un operador es algo a lo que se entrega uno o más valores y produce otro
valor.
Existen tres tipos de operadores:
• operador unario: el cual opera sobre un único valor.
• operadores binarios: este grupo contiene la mayoría de operadores que
soporta PHP , trabaja sobre dos expresiones
• operador ternario ?:, usado para seleccionar entre dos expresiones, en
base a una tercera.
• Operadores de Aritmética
• Operadores de Asignación
• Operadores de Comparación
• Operadores de Incremento/Decremento
• Operadores de Lógica
• Operadores de Cadena
2. Operadores
Operadores de Aritmética
¿Recuerdan la aritmética básica del colegio? Éstos operadores funcionan tal como
aquéllos.
Operadores
Operadores de Asignación
El operador básico de asignación es "=“, quiere decir que el operando de la izquierda
recibe el valor de la expresión a la derecha (es decir, "se define a").
$a = 5; $a = ($b + 4) + 5;
$b = $a; $nombre = “Juan Perez”;
La asignación copia la variable original en la nueva (asignación por valor), de modo que
cualquier cambio a una no afecta a la otra. A partir de PHP4, es soportada la asignación
por referencia, usando la sintaxis $var = &$otra_var. 'Asignación por referencia' quiere
decir que ambas variables terminan apuntando a los mismos datos y que nada es realmente
copiado
$a = 5; $b = $a; $a = 5; $b = &$a;
$a = 6; // $b vale 5 $a = 6; // $b vale 6
3. Operadores
Operadores de Comparación
Los operadores de comparación, como su nombre indica, le permiten comparar dos
valores.
Operadores
Operadores de Incrementos/Decremento
Los operadores de comparación, como su nombre indica, le permiten comparar dos
valores.
4. Operadores
Operadores de Lógica
Los operadores de lógica, determinan el valor booleano de una expresión.
Operadores
Operadores de Cadena (Strings)
Existen dos operadores para datos tipo string. El primero es el operador de concatenación
('.'), el cual devuelve el resultado de concatenar sus argumentas a lado derecho e izquierdo.
El segundo es el operador de asignación sobre concatenación ('.='), el cual adiciona el
argumento del lado derecho al argumento en el lado izquierdo. .
5. Estructuras de Control
Control de Flujo de programas
Todo lenguaje de programación dispone de órdenes de control de flujo,
que permite al programa tomar decisiones lógicas segun reciba unos
parámetros u otros.
Las posibilidades que ofrece php son:
• if/else
• if/elseif/else
• switch
• do/while
• while
• for
Estructuras de Control
Condicionales if /else if
Los condicionales, o bifurcaciones, son estructuras que permiten llevar a
cabo determinadas acciones, de acuerdo a la validez de una sentencia. Al
igual que en la mayor parte de los lenguajes, en PHP se utilizan el if...else
y el switch.
<?php
if ($_POST[‘edad’] >= 18){
echo “Podés ir en auto";
}else{
echo “Tomate el cole";
}
?>
6. Estructuras de Control
Condicionales if /else if
Para resumir podemos definir la instrucción if...else como:
<?php
if (sentencia) {
acciones que se ejecutan si la sentencia es verdadera
} else {
acciones que se ejecutan si la sentencia es falsa
}
?>
Estructuras de Control
Condicionales if /else if
Veremos como se puede ampliar el if para que soporte más de dos
caminos:
<?php
$a = 5;
$b = 2;
if ($a = = $b){
echo "5 es igual a 2";
} else if ($a < $b) {
echo "5 es menor que 2";
} else if ($a > $b) {
echo "5 es mayor que 2";
} else {
echo "5 no es igual a 2";
}
?>
7. Estructuras de Control
Condicionales if /else if
Mediante el uso de operadores podemos introducir condiciones
complejas, agrupándolas con parentesis:
<?php
if ( ($edad >= 18) && ($carnet_conducir = = 1)) {
ejecutamos las acciones
}
?>
Estructuras de Control
Condicionales switch
switch es una alternativa quizás mas legible cuando necesitamos
evaluar una variable frente a multiples valores posibles:
<?php
$op = "a";
switch ($op) {
case "a":
// código que se ejecuta si $op vale "a"
break;
case "b":
// código que se ejecuta si $op vale "b"
break;
default:
// código a ejecutar por defecto si no se cumple ninguna condición
}
?>
8. Estructuras de Control
Bucles while
A diferencia de los controles condicionales simples vistos hasta ahora,
los bucles toman otro tipo de decisiones: si se da la condición,
¿cuantas veces he de ejecutar esta parte de código ?
<?php
$i=1;
while ($i <=10) {
echo "$i<br>";
$i++;
}
?>
Estructuras de Control
Bucles do .. while
La única diferencia que existe con el anterior es que aquí la condición
se evalúa después de ejecutar el código, por lo que el bucle será
efectivo al menos una vez:
<?php
$i=11;
do
{
echo "$i<br>";
$i++;
}while ($i <=10);
?>
9. Estructuras de Control
Bucles for
Similar en su funcionalidad a while, el bucle for toma tres parámetros,
separados los dos primeros por punto y coma: valor inicial de la
variable de control, valor final y incremento de la misma.
<?php
for ($i=1; $i<=10; $i++) {
echo "$i<br>";
}
?>
Arrays
• Sintaxis:
array ([clave =>] valor, ...).
• La clave es una cadena o un entero no negativo. El valor puede
ser de cualquier tipo válido en PHP, incluyendo otro array
• Ejemplos:
$color = array (‘rojo’=>101, ‘verde’=>51, ‘azul’=>255);
$medidas = array (10, 25, 15);
• Acceso:
echo $color[‘rojo’] // imprime 101
echo $medidas[0] // imprime 10
• El primer elemento es el 0
10. Arrays
• La estructura de control foreach permite iterar sobre arrays
• Sintaxis:
foreach ($array as $valor)
sentencia
foreach ($array as $clave => $valor)
sentencia
• Ejemplos:
foreach ($color as $valor)
print “Valor: $valor<BR>n”;
foreach ($color as $clave => $valor)
print “Clave: $clave; Valor: $valor<BR>n”;
Arrays
Ejemplos:
$color = array (‘rojo’=>101, ‘verde’=>51, ‘azul’=>255);
foreach ($color as $valor)
print “Valor: $valor<BR>n”;
Salida:
Valor: 101
Valor: 51
Valor: 255