¿Qué son las estructuras de control y para qué se utilizan en PHP?
Las estructuras de control son fundamentales en cualquier lenguaje de programación, incluyendo PHP. Estas herramientas permiten validar condiciones, realizar iteraciones, y semejantes tareas que dependen del contexto de un proyecto. En PHP, las estructuras de control más comunes incluyen if, else, while, do while, for, foreach, y switch. Cada una de estas tiene su uso específico, ofreciendo flexibilidad para ejecutar diferentes acciones según las condiciones establecidas. A continuación, profundizaremos en cada una de estas.
¿Cómo funcionan las estructuras if y else?
La estructura if y else permite ejecutar una acción basada en una condición. Si la condición es verdadera, se ejecuta la instrucción dentro del if; si es falsa, se ejecuta la instrucción dentro del else.
$valor_a=10;if($valor_a==10){echo"es igual a 10";}else{echo"no es igual a 10";}
Si cambiamos $valor_a a 5, el bloque de else se ejecutará, mostrando "no es igual a 10". Esta flexibilidad para realizar validaciones la convierte en una herramienta muy poderosa.
¿En qué consisten while y do while?
Las estructuras while y do while son ciclos que ejecutan acciones repetidamente mientras una condición se mantenga verdadera. La diferencia clave radica en que do while asegura que el bloque de código se ejecute al menos una vez.
Ejemplo de while
$i=0;while($i<=10){echo$i;$i++;}
Ejemplo de do while
$i=0;do{echo$i;$i++;}while($i<=10);
Ambas estructuras mostrarán los números del 0 al 10, pero el orden de ejecución difiere. Esto es clave para casos donde al menos una ejecución es necesaria.
¿Cómo se usan for y foreach?
Los ciclos for y foreach son excelentes para recorrer arrays y ejecutar una acción para cada elemento. Aunque son similares, foreach es especialmente útil para iterar a través de cada elemento de un array.
Ambas estructuras iterarán por el array y mostrarán los números, pero foreach ofrece una sintaxis más simple y directa cuando no se necesita controlar el índice.
¿Qué es la estructura switch?
Switch permite evaluar múltiples casos para una variable específica. Si el valor concuerda con uno de los casos, se ejecuta la instrucción correspondiente. En caso contrario, puede definirse un valor por defecto.
$valor_a=6;switch($valor_a){case1:echo"El valor es 1";break;case2:echo"El valor es 2";break;case3:echo"El valor es 3";break;default:echo"No es ninguno de los valores 1, 2 o 3";}
Este ejemplo muestra cómo switch evalúa varios casos y ejecuta instrucciones basadas en el valor de la variable $valor_a. Es útil para situaciones con múltiples condiciones discretas.
Aprender a manejar estas estructuras de control en PHP te permitirá escribir código más dinámico y adaptativo. A medida que ganes experiencia, decidirás cuál utilizar según la necesidad de tus proyectos. ¡Sigue explorando y adquiriendo más habilidades en programación!
Vamos a aprender sobre estructuras de control. En total en esta clase de vieron 7 estructuras de control (hice un resumen de la clase):
.
.
Comparto el código hecho en clase y de los ejemplos que he hecho (mucho está comentado y es mejor si lo ven en el navegador que la terminal, por los saltos de línea que he agregado):
<?php/*
//If
$valorA = 10;
if ($valorA == 10){
echo "Es igual a 10 <br>";
} else {
echo "No es igual a 10 <br>";
}
// while / do while
$i = 0;
while($i <= 10){
echo $i++ . "<br>";
}
$j = 0;
do{
echo $j++ . "<br>";
}while($j<=10);
// for / for each
$array = [1,2,3,4];
for ($i = 0; $i<4; $i++){
echo "$array[$i] <br>";
}
foreach($array as $value) {
echo "$value <br>";
}
//switch
$valorA = 3;
switch($valorA){
case 1:
echo "El valor es 1<br>";
break;
case 2:
echo "El valor es 2<br>";
break;
case 3:
echo "El valor es 3<br>";
break;
default:
echo "No es ninguno de los valores 1, 2 o 3";
break;
}
//carbon
$age = 17;
if($age < 18){
echo "No se permite el ingreso!";
} else if($age >= 18){
echo "Ingreso autorizado";
}
$number = 10;
while($number >= 0){
echo "Quedan $number segundo(s)<br>";
$number--;
}
$number = 1;
do {
echo "Este número es mayor a 10<br>";
$number++;
}while($number > 10);
for($i = 0; $i < 10 ; $i++){
echo "Han pasado $i segundo(s)<br>";
}
$favoriteFruits = ['Fresa', 'Naranja', 'Mandarina', 'Manzana'];
echo "Mis frutas favoritas son:<br>";
foreach($favoriteFruits as $value){
echo "$value<br>";
}
*/$note='C';switch($note){case'A':echo"Tienes $note como nota, excelente!";break;case'B':echo"Tienes $note como nota, bien, puedes mejorar.";break;case'C':echo"Tienes $note como nota, debes volver a rendir el examen.";break;case'D':echo"Tienes $note como nota, reprobaste.";break;default:echo"$note es una nota incorrecta.";break;}```
muchas gracias por los ejemplos, queda muy claro!
Me parece importante mencionar que desde la versión 8 de php existe una alternativa bastante mejor a switch que es match.
He aquí un ejemplo de la documentación oficial:
.
php 7 (switch)
switch(8.0){case'8.0': $result ="Oh no!";break;case8.0: $result ="This is what I expected";break;}echo $result;//> Oh no!
.
php 8 (match)
echo match(8.0){'8.0'=>"Oh no!",8.0=>"This is what I expected",};//> This is what I expected
Aunque aún se pueda utilizar switch resulta mejor usar match en la mayoría de los casos.
Gracias por el aporte Mauricio! 🦾
Gracias no conocia de match 💚
Me parece que le dare un mejor uso que switch
$valorA =readline("Dame es valor plis 🐱👤 \n");echo match($valorA){'Valor A'=>"Este es el primer valor\n",'Valor B'=>"Este es el segundo valor\n",'Valor C'=>"Este es el tercer valor\n",default=>"I DO NOT HAVE THAT😔`\n",};
Buenas.
Aclaración desde mi pequeña experiencia
.
Vengo siguiendo la ruta de Desarrollo con Wordpress, hago los cursos en orden y estoy entendiendo todo ok.
Si alguno siente que a la profe le falta explicar cosas, entiendo que es porque este es el tercer curso de PHP. Sería como un repaso.
.
Aquí están los dos primeros
Estamos haciendo un post-incremento, es decir, que primero hacemos la asignación (o en este caso, mostramos el valor) y después hacemos la operación de sumarle uno a nuestra variable $i.
Muy importante, xq creo que no se menciono la direferencia entre ++$i y $i++, uno incrementa primero y asigna, el otro hace la asignacion del incremento despues de ejecutarse la operacion.
Me parece una buena práctica evitar la etiqueta de cierre cuando nuestro código es todo PHP.
Si tenemos algún comentario después
?>
hola
el intérprete no lo tendrá en cuenta pero lo mostrará cuando se ejecute el archivo; sin la etiqueta ?> arrojará un error poniendo en evidencia esa línea.
La gran diferencia entre las estructuras de control while y do while es que la segunda realiza las operaciones contenidas al menos una vez.
Es correcto, el do while se utiliza para cuando uno desea se ejecute determinada operacion al menos una vez
Si sientes que es difícil. No se preocupen estamos aquí para aprender.
Lamento decir que esta no es una buena clase de Curso practico de PHP, y ni siquiera es buena clase de Estructuras de control basicas en PHP
ya que no explican bien el funcionamiento del for, no te explican los 3 valores basicos que lleva un for... solo lo dan por sentado..
porfavor si van a ser una escuela seria, pongan mas atencion en sus clases, ya que esta no tiene continuidad con el curso anterior
Hola, Luis.
Entiendo es un repaso.
Estoy haciendo en orden los cursos y todos esos temas ya los vi en profundidad en los siguientes cursos.
Básico de PHP 1Básico de PHP 2
Vi el video, y tienes razón bro, no comprendí cual era el básico de php 2 porque me envío directamente a el práctico y creo que la clase es como el repaso del repaso, solo que no se organiza la información para el ingresar a los cursos en secuencia.
Mejore el Código del ejemplo de SWITCH:
vemos en el ejemplo que es muy largo y repetitivo, a la vez no acepta numero float.
acá el código para mejorar el código. Muy buena clase!
$valorA =readline("ingreasa un valor del 1 al 3: ");switch($valorA){case $valorA <=3: echo "valor es: ".$valorA;break;default: echo "valor no existe";break;}echo "\n";
A partir de la versión 8 de PHP, se puede usar de forma análoga a la estructura Case, la estructura Match. La estructura Match tiene algunas pequeñas diferencias, siendo mas completa que Case, como se puede ver en el siguiente enlace https://www.php.net/manual/es/control-structures.match.php
$edad = 4;
switch ($edad){
case ($edad < 5):
echo "Tendrán sus espacios en la parte inferior de la bodega.";
break;
case ($edad >=5 && $edad <=7):
echo "Tendrán sus espacios en la parte alta de la bodega.";
break;
case ($edad > 7):
echo "Tendrán sus espacios en la parte alta de la bodega.";
break;
default:
echo "Tendrán un espacio de almacenamiento en la bodega de al lado.";
break;
}
?>
la diferencia entre en for y un foreach es que con el for sabemos cuantos valores tiene el arreglo mientras que con el foreach lo recorre todo???
el for recorre los índices de nuestro arreglo, en cambio el foreach itera sobre los elementos.
For -> accede a la posición del contenido de un arreglo.
ForEach -> Accede al contenido de un arreglo
:)
Lo he visto mucho y tengo una duda ¿Qué significa => en php?
Vengo de js y para mi es una función :)
Entiendo que también es una función flecha.
Documentación
Buenas coompanero !
Este ' => ' en PHP es un operador de asignacion.
Tiene varios usos:
en arreglos asociativos para asignar valores a las llaves o keys del arreglo.
$arreglo =['name'=>'Elvis','music'=>'RocknRoll'];
Se usa dentro de los foreach para recorrer los arreglos asosiativos:
foreach($array as$key=> $value){//haga algo }
Y desde la version PHP 7.4 se usa tambien para asignar la expresion a un tipo de funcion llamada arrow function, asi:
fn(arguments)=> expression;
que en ultima instancia es lo simplificacion de escribir:
function(arguments){return expression;}
he visto el curso dos veces solo para seguir viendo... <3
for
if
else
while
switch
Consulta amigos y compañeros de platzi, en que casos se usa el while y el do while, si al fin y al cabo realizan la misma secuencia a diferencia de como se estructura? desde ya gracias
Cuando quieres que hago se repita almenos una vez 👋.
no entiendo que se debe instalar para ejecutar el código en la terminal, alguien por favor me puede indicar?
Tienes que tener instalado PHP, para que se pueda interpretar el código que escribas en la terminal. Si necesitas apoyo, búscame en Discord, en el canal de #Networking
hola mil0rd es soy nuevo en esto y en discord intente buscar el canal pero no di
Para los curiosos, otras estructuras de control
<?php
// otros operadores de control
$a = 3; $b = 4;
$c = ( $a > $b ) ? $a : $b;
echo $c."\n";
$valor = $nulo ?? "otro valor"; // Si es null entonces "otro valor"
echo $valor."\n";
$booleano = $a<=>$b; // Si $a < $b entonces -1,
echo $booleano."\n";
$booleano = $b<=>$a; // Si $b > $a entonces 1,
echo $booleano."\n";
$booleano = $a<=>$a; // Si $a == $a entonces 0,
echo $booleano."\n";
?>
```\<?php// otros operadores de control$a = 3; $b = 4; 
$c = ( $a > $b ) ? $a : $b;echo $c."\n";
$valor = $nulo ?? "otro valor"; // Si es null entonces "otro valor"echo $valor."\n";
$booleano = $a<=>$b; // Si $a < $b entonces -1,echo $booleano."\n";
$booleano = $b<=>$a; // Si $b > $a entonces 1,echo $booleano."\n";
$booleano = $a<=>$a; // Si $a == $a entonces 0,echo $booleano."\n";
?>
El if - elseif , y el if else if , separados tienen un comportamiento igual si se utilizan llaves
<?php
/* Correct Method: */$a=4; $b=5;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";}?>```Y si llaves 
```js
````if($a > $b):`` echo $a." es mayor que ".$b;``elseif($a == $b):// Tenga en cuenta la combinación de las palabras.`` echo $a." igual ".$b;``else:`` echo $a." no es ni mayor que ni igual a ".$b;``endif;`Observesé que se pone if elseif else:**y este else lleva ":"**