Logo Studenta

PHP estructuras básicas

¡Este material tiene más páginas!

Vista previa del material en texto

Curso : Programación Inicial Web 
Profesor: Pablo Lioi 
PHP Estructuras iniciales 
Tipos de variables en PHP 
booleanos 
Un tipo de variable booleano puede tener valor true (verdadero) o false (falso) 
<?php 
 $bool1 = true; //bool1 es una variable de tipo booleano con valor true 
 $bool2 = false;// $bool2 es una variable de tipo booleano con valor false 
?> 
Enteros 
Un entero es un número que pertenece a el conjunto ℤ = {…, -2, -1, 0, 1, 2, …}. 
ejemplos de declaración: 
 
<?php 
 $entero = 42; 
 echo $entero; 
 $entero = 01; 
 echo $entero; 
 $entero = 0x22; 
 echo $entero; 
 $entero = 0b11;// si mal no me salen las cuentas esto es 3 
 ?> 
Flotante( float / double ) 
Los números flotantes puede ser cualquier tipo de número, son los números pertenecientes a el 
conjunto de los números reales. Ejemplo 2,3, 3,33333. 
String 
Son todas las variables de tipo texto, serie de caracteres de 256 bytes. Desde PHP 7.0 la serie 
de caracteres puede ser de más de 256 bytes y no parece haber una restricción que moleste 
<?php 
 echo 'echo'; 
 echo "ejemplo con comillas dobles"; 
?> 
Curso : Programación Inicial Web 
Profesor: Pablo Lioi 
PHP Estructuras iniciales 
Variable de tipo Array 
 
No sé si realmente puedo poner como array al tipo de variable ya que es de tipo ordered map. 
Los ordered maps asocian variables con palabras clave (key). Digamos asocio a con el valor b. 
Un array puede contener otro array, arboles e incluso arrays multi -dimensionales. 
 
<?php 
 $a = array( 
 "foo" => "bar", 
 "bar" => "foo" 
 ); 
?> 
echo $a['foo'];// devolvera bar 
echo $a['bar'];//devolvera foo 
Iterables 
Desde PHP 7.1 existe el tipo de variable iterable, esta acepta un array o un objeto que este 
implementando la interfaz Traversable. Esta interfaz detecta si una clase puede recorrerse 
mediante foreach. 
Puede ser usado con yeld form dentro de un generator 
uso: 
Puede ser usado como parámetro en una función en caso de no ser iterable lanzara un error 
TypeError. 
<?php 
 
function foo(iterable $iterable) { 
 foreach ($iterable as $value) { 
 // ... 
 } 
} 
?> 
 
Curso : Programación Inicial Web 
Profesor: Pablo Lioi 
PHP Estructuras iniciales 
Objetos 
A mí me gusta ver las clases como si fueran los planos de una casa y el objeto la casa en sí que 
obtenemos al usar ese plano. 
Veamos mejor lo que es un objeto a través de la definición de Wikipedia. 
Un objeto en POO representa alguna entidad de la vida real, es decir, alguno de los objetos que 
pertenecen al negocio con que estamos trabajando o al problema con el que nos estamos 
enfrentando, y con los que podemos interactuar. 
A través del estudio de ellos se adquiere el conocimiento necesario para, mediante la 
abstracción y la generalización, agruparlos según sus características en conjuntos. Estos 
conjuntos determinan las clases de objetos con las que estamos trabajando. 
Hagamos un objeto casa tal como el ejemplo del inicio. 
A las funciones dentro del objeto se le llama métodos. 
 
<?php 
class Casa 
{ 
 private $ventanas = 5; 
 private $puertas = 3; 
 
 function mostrar() 
 { 
 echo "tengo una casa con $this->ventanas ventanas y $this->puertas 
puertas"; 
 } 
 public function setVentanas($nro){ 
 $this->vetanas = $nro; 
 } 
 public function setPuertas($nro){ 
 $this->puertas = $nro; 
 } 
} 
 
$miCasa= new Casa; 
$miCasa->mostrar(); 
// puede usar las funciones setVentana y setPuertas para setear la cantidad 
de ventanas y puertas 
?> 
 
https://es.wikipedia.org/wiki/Programaci%C3%B3n_orientada_a_objetos
Curso : Programación Inicial Web 
Profesor: Pablo Lioi 
PHP Estructuras iniciales 
Resources 
Las variables de tipo resource, contienen referencias a recursos externos, estas son creadas y 
usadas por funciones especiales. 
Ejemplos: Mysql link, es el que se usa para hacer la conexión a base de datos. Por lo general no 
tocara estas variables directamente sino a través de una función en este caso Mysql_connect(); 
crea el recurso y lo puede utilizar con otras funciones ( mysql_query(), mysql_result(), otras) y es 
destruido por mysql_close() 
NULL 
El valor especial Null representa una variable sin valor y este es el único valor que puede tener 
este tipo de variable. 
La parte de Pseudo types ha cambiado desde la versión 7.4 leer con cautela 
Pseudo – types 
 
Pseudo tipos son palabras clave usadas en la documentación de PHP para especificar los tipos 
o valores que puede tener un argumento. Por favor nótese que no son primitivas del lenguaje 
PHP. Por lo tanto, no puede utilizar Pseudo tipos como sugerencias de tipo en funciones 
personalizadas. 
Esto ha cambiado hace poco tiempo. 
manipulación de tipos(Type Juggling) 
 
PHP no requiere (ni soporta) la definición explicita de tipos en la declaración de variables. 
El tipo de la variable se determina por el contexto en el cual se emplea la variable. Es decir, si se 
asigna un valor string a una variable $var, entonces $var se convierte en un string. 
Si un valor integer es entonces asignado a la misma variable $var, esta se convierte en integer. 
 
<?php 
$foo = "0"; // $foo es string (ASCII 48) 
$foo += 2; // $foo es ahora un integer (2) 
$foo = $foo + 1.3; // $foo es ahora un float (3.3) 
$foo = 5 + "10 Cerditos pequeñitos"; // $foo es integer (15) 
$foo = 5 + "10 Cerdos pequeños"; // $foo es integer (15) 
?> 
 
 
Curso : Programación Inicial Web 
Profesor: Pablo Lioi 
PHP Estructuras iniciales 
Conversión (cast) de tipo 
Podemos convertir a un tipo en específico o forzar a que sea de un tipo en específico con los ( ). 
 
(int), (integer) – cast a entero 
(bool), (boolean) – cast a booleano 
(float), (double), (real) – cast a punto flotante o nro real 
(string) – cast a string 
(array) – cast a array 
(object) – cast a objeto 
(unset) – cast a NULL 
Enumerations 
a partir de PHP 8.1 
Cumple la función de capa restrictiva sobre las clases o constantes de clases, para proveer una 
forma de definir un set de posibles valores para un tipo de variable. En pocas palabras estamos 
creando un tipo de variable que puede recibir ciertos valores. 
 
<?php 
enum Suit 
{ 
 case Hearts; 
 case Diamonds; 
 case Clubs; 
 case Spades; 
} 
 
function do_stuff(Suit $s) 
{ 
 // ... 
} 
 
do_stuff(Suit::Spades); 
?> 
De hecho hemos estado utilizando una clase de enumeración desde los inicios de PHP y esta es 
boolean que es una enumeración build-in (que viene por defecto en el lenguaje o programa) que 
nos permite 2 valores true o false 
 
 
Curso : Programación Inicial Web 
Profesor: Pablo Lioi 
PHP Estructuras iniciales 
Operadores aritméticos 
¿Recuerdan la aritmética básica de la escuela? Estos funcionan igual que aquellos. 
Ejemplo Nombre Resultado 
+$a Identidad Conversión de $a a int o float según el caso. 
-$a Negación Opuesto de $a. 
$a + $b Adición Suma de $a y $b. 
$a - $b Sustracción Diferencia de $a y $b. 
$a * $b Multiplicación Producto de $a y $b. 
$a / $b División Cociente de $a y $b. 
$a % $b Módulo Resto de $a dividido por $b. 
$a ** $b Exponenciación Resultado de elevar $a a la potencia $bésima. 
Introducido en PHP 5.6. 
El operador de división ("/") devuelve un valor flotante a menos que los dos operandos sean integers (o 
strings que se conviertan a integers) y los números sean divisibles, en cuyo caso será devuelto un valor 
integer. 
Los operandos del módulo se convierten en integers (por extracción de la parte decimal) antes del 
procesamiento. 
El resultado del operador módulo % tiene el mismo signo que el dividendo — es decir, el resultado de $a 
% $btendrá el mismo signo que $a. Por ejemplo: 
 
 
Curso : Programación Inicial Web 
Profesor: Pablo Lioi 
PHP Estructuras iniciales 
<?php 
echo (5 % 3)."\n"; // muestra 2 
echo (5 % -3)."\n"; // muestra 2 
echo (-5 % 3)."\n"; // muestra -2 
echo (-5 % -3)."\n"; // muestra -2 
?> 
Operadores lógicos 
Ejemplo Nombre Resultado 
$a and $b And (y) true si tanto $a como $b son true. 
$a or $b Or (o inclusivo) true si cualquiera de $a o $b es true. 
$a xor $b Xor (o exclusivo) true si $a o $b es true, pero no ambos. 
! $a Not (no) true si $a no es true. 
$a && $b And (y) true si tanto $a como $b son true. 
$a || $b Or (o inclusivo) true si cualquiera de $a o $b es true. 
La razón para tener las dos variaciones diferentes de los operadores "and" y "or" es que ellos 
operan con precedencias diferentes. (Ver Precedencia de operadores.) 
 
https://www.php.net/manual/es/language.operators.logical.php#language.operators.logical
https://www.php.net/manual/es/language.operators.precedence.php
Curso : Programación Inicial Web 
Profesor: Pablo Lioi 
PHP Estructuras iniciales 
 
Ejemplo #1 Los operadores lógicos ilustrados 
<?php 
// -------------------- 
// foo() nunca será llamado ya que los operadores están en cortocircuito 
 
$a = (false && foo()); 
$b = (true || foo()); 
$c = (false and foo()); 
$d = (true or foo()); 
// -------------------- 
// "||" tiene una precedencia mayor que "or" 
// El resultado de la expresión (false || true) es asignado a $e 
// Actúa como: ($e = (false || true)) 
$e = false || true; 
// La constante false es asignada a $f antes de que suceda la operación "or" 
// Actúa como: (($f = false) or true) 
$f = false or true; 
var_dump($e, $f); 
// -------------------- 
// "&&" tiene una precedencia mayor que "and" 
// El resultado de la expresión (true && false) es asignado a $g 
// Actúa como: ($g = (true && false)) 
$g = true && false; 
 
// La constante true es asignada a $h antes de que suceda la operación "and" 
// Actúa como: (($h = true) and false) 
$h = true and false; 
 
var_dump($g, $h); 
?> 
 
El resultado del ejemplo sería algo similar a: 
bool(true) 
bool(false) 
bool(false) 
bool(true) 
 
 
Curso : Programación Inicial Web 
Profesor: Pablo Lioi 
PHP Estructuras iniciales 
echo 
(PHP 4, PHP 5, PHP 7, PHP 8) 
echo — Muestra una o más cadenas 
Descripción 
echo(string $arg1, string $... = ?): void 
Muestra todos los parámetros. No se pospone ninguna nueva línea adicional. 
echo no es realmente una función (es una construcción del lenguaje), por lo que no se requiere el 
uso de paréntesis con él. echo (a diferencia de otras construcciones del lenguaje) no se comporta 
como una función, es decir no siempre se puede usar en el contexto de una función. Además, si se 
quiere pasar más de un parámetro a echo, éstos no deben estar entre paréntesis. 
echo también posee una sintaxis abreviada, donde se puede poner el símbolo igual justo después de 
la etiqueta de apertura de PHP. Antes de PHP 5.4.0, este tipo de sintaxis abreviada únicamente 
funciona con la opción de configuración short_open_tag activada. 
I have <?=$foo?> foo. 
Parámetros 
arg1 
El parámetro a mostrar. 
... 
Valores devueltos 
No devuelve ningún valor. 
 
https://www.php.net/manual/es/ini.core.php#ini.short-open-tag
Curso : Programación Inicial Web 
Profesor: Pablo Lioi 
PHP Estructuras iniciales 
Ejemplos 
Ejemplo #1 Ejemplos de echo 
<?php 
echo "Hola mundo"; 
 
echo "Esto abarca 
multiple líneas. Los saltos de línea también 
se mostrarán"; 
 
echo "Esto abarca\nmúltiples líneas. Los saltos de línea también\nse 
mostrarán."; 
 
echo "Para escapar caracteres se hace \"así\"."; 
 
// Se pueden usar variables dentro de una sentencia echo 
$foo = "foobar"; 
$bar = "barbaz"; 
 
echo "foo es $foo"; // foo es foobar 
 
// También se pueden usar arrays 
$baz = array("valor" => "foo"); 
 
echo "Esto es {$baz['valor']} !"; // Esto es foo ! 
 
// Si se utilizan comillas simples, se mostrará el nombre de la variable, no 
su valor 
echo 'foo es $foo'; // foo es $foo 
 
// Si no usan otros caracteres, se puede utilizar echo para mostrar el valor 
de las variables. 
echo $foo; // foobar 
echo $foo,$bar; // foobarbarbaz 
 
// Las cadenas pueden ser pasadas individualmente como varios argumentos o 
// concatenadas como un único argumento 
echo 'Esta ', 'cadena ', 'está ', 'hecha ', 'con múltiple parámetros.', 
chr(10); 
echo 'Esta ' . 'cadena ' . 'está ' . 'hecha ' . 'con concatenación.' . "\n"; 
echo <<<END 
Aquí se utiliza la sintaxis de "here document" para mostrar 
múltiples líneas con interpolación de $variable. Nótese 
que el finalizador de here document debe aparecer en una 
línea con solamente un punto y coma. ¡Nada de espacios extra! 
END; 
// Ya que echo no se comporta como una función, el siguiente código no es 
álido. 
($variable) ? echo 'true' : echo 'false'; 
 
 
https://www.php.net/manual/es/function.echo.php#refsect1-function.echo-examples
Curso : Programación Inicial Web 
Profesor: Pablo Lioi 
PHP Estructuras iniciales 
// Sin embargo, el siguiente código funcionará: 
($variable) ? print 'true' : print 'false'; // print también es una 
construcción, pero se comporta como una función, por lo que puede usarse en 
este contexto. 
echo $variable ? 'true': 'false'; // dando la vuelta a la declaración 
?> 
 
Notas 
Nota: Puesto que esto es una construcción del lenguaje y no una función, no puede ser llamada 
usando funciones variables. 
Sugerencia 
Un beneficio de pasar varios argumentos sobre la concatenación en echo es la precedencia del 
operador punto en PHP. Si se pasan varios argumentos, no serán necesarios paréntesis para forzar 
la precedencia: 
<?php 
echo "Sum: ", 1 + 2; 
echo "Hello ", isset($name) ? $name : "John Doe", "!"; 
Con la concatenación, el operador punto tiene mayor precedencia que los operadores de adición y 
ternario, por lo que se deben utilizar paréntesis para un correcto funcionamiento: 
<?php 
echo 'Sum: ' . (1 + 2); 
echo 'Hello ' . (isset($name) ? $name : 'John Doe') . '!'; 
 
Cuando empezamos el aprendizaje de un lenguaje de programación; es normal que las primeras 
líneas, scripts o programas que escribimos, sean por medio de la consola que el lenguaje provee, 
esto es bueno, porque nos permite, centrarnos en la comprensión de la sintaxis del lenguaje, 
olvidándonos de otros aspectos que podemos aprender en el camino; ese es el caso, cuando 
necesitamos Solicitar DATOS por CONSOLA en PHP, estos datos podemos leerlos por teclado 
mediante la consola en PHP para hacer pruebas, antes de escribir una página en HTML con los 
controles que capturen los valores ingresados. 
 
https://www.php.net/manual/es/functions.variable-functions.php
http://www.youtube.com/c/Byspel?sub_confirmation=1
Curso : Programación Inicial Web 
Profesor: Pablo Lioi 
PHP Estructuras iniciales 
 
Solicitar DATOS por CONSOLA en PHP 
(Leer datos por teclado en PHP) 
 
Método readline en PHP 
Permite leer una línea ingresada por el usuario en la PHP CLI, útil para recuperar cualquier 
dato necesario en un script PHP. 
La forma de uso de este método es muy sencillo, digamos que necesitamos solicitar un 
nombre y mostrarlo; podemos abarcarlo de la siguiente forma: 
Código fuente, PROYECTOS, Cursos, Ejercicios, Manuales y muchos MáS AQUÍ 
Ejemplo 1 del funcionamiento readline en PHP: 
 Solicitando un nombre. 
 
Cómo podemos observar, este método; recibe un valor tipo cadena o String, para mostrarlo en la 
consola; el valor ingresado es almacenado en la variable «$nombre», que posteriormente podemos 
manipularla según nuestras necesidades, en este caso solo es mostrarla. 
Cómo salida de este ejemplo obtenemos: 
Ingrese su nombre: Iván 
Hola, Iván 
 
Ejemplo 2 del funcionamiento readline en PHP: 
 Sumando dos números. 
 
 
 
https://shop.byspel.com/
Curso : Programación Inicial Web 
Profesor: PabloLioi 
PHP Estructuras iniciales 
Ahora nuestro ejemplo se encarga de solicitar dos valores, para realizar una operación matemática, 
si observas, los datos son tratados igual que el ejemplo 1, sin embargo, PHP; se encarga de manejar 
el formato correcto para el valor ingresado; en este caso números. 
Cómo salida de este ejemplo obtenemos: 
Ingrese el primer número: 5 
Ingrese el segundo número: 2 
La suma es: 7 
 
Finalmente, podemos darnos cuenta, como podemos ingresar datos por consola en PHP, 
utilizando readline, un método muy útil; cuando necesitamos que el usuario ingrese un valor, 
con el cual trabajará nuestro script. 
If Else end if 
(PHP 4, PHP 5, PHP 7, PHP 8) 
elseif, como su nombre indica, es una combinación de if y else. Como else, extiende una if 
declaración para ejecutar una declaración diferente en caso de que la if expresión original se evalúe 
como false. Sin embargo, a diferencia de else, ejecutará esa expresión alternativa solo si la elseif 
expresión condicional se evalúa como true. Por ejemplo, el siguiente código mostraría a es mayor que 
b , a igual a b o a es menor que b : 
<?php 
if ($a > $b) { 
echo "a is bigger than b"; 
} elseif ($a == $b) { 
echo "a is equal to b"; 
} else { 
echo "a is smaller than b"; 
} 
?> 
Puede haber varios elseifs dentro de la misma ifdeclaración. Se ejecutará la primera elseifexpresión 
(si la hay) que evalúe a . trueEn PHP, también puedes escribir 'else if' (en dos palabras) y el 
comportamiento sería idéntico al de 'elseif' (en una sola palabra). El significado sintáctico es 
ligeramente diferente (si está familiarizado con C, este es el mismo comportamiento), pero la 
conclusión es que ambos darían como resultado exactamente el mismo comportamiento. 
La elseifdeclaración solo se ejecuta si la ifexpresión anterior y las expresiones anteriores 
elseifse evalúan como false, y la elseifexpresión actual se evalúa como true. 
Curso : Programación Inicial Web 
Profesor: Pablo Lioi 
PHP Estructuras iniciales 
Nota : tenga en cuenta que elseify else if solo se considerará exactamente igual cuando se 
usen corchetes como en el ejemplo anterior. Cuando use dos puntos para definir sus 
condiciones if/ elseif, no debe separarlas else if en dos palabras, o PHP fallará con un 
error de análisis. 
<?php 
 
/* Incorrect Method: */ 
if ($a > $b): 
echo $a." is greater than ".$b; 
else if ($a == $b): // Will not compile. 
echo "The above line causes a parse error."; 
endif; 
 
 
/* Correct Method: */ 
if ($a > $b): 
echo $a." is greater than ".$b; 
elseif ($a == $b): // Note the combination of the words. 
echo $a." equals ".$b; 
else: 
echo $a." is neither greater than or equal to ".$b; 
endif; 
 
?> 
 
Curso : Programación Inicial Web 
Profesor: Pablo Lioi 
PHP Estructuras iniciales 
switch 
(PHP 4, PHP 5, PHP 7, PHP 8) 
La sentencia switch es similar a una serie de sentencias IF en la misma expresión. En muchas 
ocasiones, es posible que se quiera comparar la misma variable (o expresión) con muchos valores 
diferentes, y ejecutar una parte de código distinta dependiendo de a que valor es igual. Para esto es 
exactamente la expresión switch. 
Nota: Cabe señalar que a diferencia de algunos otros lenguajes, la sentencia continue se aplica a 
switch y actúa de manera similar a break. Si se tiene un switch dentro de un bucle y se desea 
continuar a la siguiente iteración de del ciclo exterior, se utiliza continue 2. 
Nota: 
Tener en cuenta que switch/case hace comparaciones flexibles. 
 
 
Versión Descripción 
7.0.0 Múltiples casos predeterminados (default) emitirán un error de tipo 
E_COMPILE_ERROR. 
 
Los dos ejemplos siguientes son dos formas diferentes de escribir lo mismo, uno con una serie de 
sentencias if y elseif, y el otro usando la sentencia switch: 
 
Ejemplo #1 Estructura switch 
<?php 
if ($i == 0) { 
echo "i es igual a 0"; 
} elseif ($i == 1) { 
echo "i es igual a 1"; 
} elseif ($i == 2) { 
echo "i es igual a 2"; 
} 
switch ($i) { 
case 0: 
echo "i es igual a 0"; 
break; 
case 1: 
echo "i es igual a 1"; 
break; 
case 2: 
echo "i es igual a 2"; 
break; 
} 
?> 
https://www.php.net/manual/es/control-structures.continue.php
https://www.php.net/manual/es/types.comparisons.php#types.comparisions-loose
Curso : Programación Inicial Web 
Profesor: Pablo Lioi 
PHP Estructuras iniciales 
 
Ejemplo #2 Estrutura switch permite el uso de strings 
<?php 
switch ($i) { 
case "manzana": 
echo "i es una manzana"; 
break; 
case "barra": 
echo "i es una barra"; 
break; 
case "pastel": 
echo "i es un pastel"; 
break; 
} 
?> 
Es importante entender cómo la sentencia switch es ejecutada con el fin de evitar errores. La 
sentencia switch ejecuta línea por línea (en realidad, sentencia por sentencia). Al principio, ningún 
código es ejecutado. Solo cuando se encuentra una sentencia case cuya expresión se evalúa a un 
valor que coincida con el valor de la con un valor que coincide con el valor de la expresión switch, 
PHP comienza a ejecutar la sentencias. PHP continúa ejecutando las sentencias hasta el final del 
bloque switch, o hasta la primera vez que vea una sentencia break. Si no se escribe una sentencia 
break al final de la lista de sentencias de un caso, PHP seguirá ejecutando las sentencias del caso 
siguiente. Por ejemplo: 
<?php 
switch ($i) { 
case 0: 
echo "i es igual a 0"; 
case 1: 
echo "i es igual a 1"; 
case 2: 
echo "i es igual a 2"; 
} 
?> 
Aquí, si $i es igual a 0, PHP ejecutaría todas las sentencias echo! Si $i es igual a 1, PHP ejecutaría 
las últimas dos sentencias echo. Se obtendría el comportamiento esperado (se mostraría 'i es igual a 
2') sólo si $i es igual a 2. Por lo tanto, es importante no olvidar las sentencias break (aunque es 
posible que se desee evitar proporcionarlas a propósito bajo determinadas circunstancias). 
En una sentencia switch, la condición es evaluada sólo una vez y el resultado es comparado con 
cada una de las sentencias case. En una sentencia elseif, la condición es evaluada otra vez. Si la 
Curso : Programación Inicial Web 
Profesor: Pablo Lioi 
PHP Estructuras iniciales 
condición es más complicada que una simple comparación y/o está en un bucle estrecho, un switch 
puede ser más rápido. 
La lista de sentencias para un caso también puede estar vacía, lo cual simplemente pasa el control a 
la lista de sentencias para el siguiente caso. 
<?php 
switch ($i) { 
case 0: 
case 1: 
case 2: 
echo "i es menor que 3 pero no negativo"; 
break; 
case 3: 
echo "i es 3"; 
} 
?> 
Un caso especial es el default. Este caso coincide con cualquier cosa que no se haya correspondido 
por los otros casos. Por ejemplo: 
<?php 
switch ($i) { 
case 0: 
echo "i es igual a 0"; 
break; 
case 1: 
echo "i es igual a 1"; 
break; 
case 2: 
echo "i es igual a 2"; 
break; 
default: 
echo "i no es igual a 0, 1 ni 2"; 
} 
?> 
La sintaxis alternativa para las estructuras de control es compatible con los switch. Para obtener 
más información, consulte Sintaxis alternativa de estructuras de control. 
<?php 
switch ($i): 
case 0: 
echo "i es igual a 0"; 
break; 
case 1: 
echo "i es igual a 1"; 
https://www.php.net/manual/es/control-structures.alternative-syntax.php
Curso : Programación Inicial Web 
Profesor: Pablo Lioi 
PHP Estructuras iniciales 
break; 
case 2: 
echo "i es igual a 2"; 
break; 
default: 
echo "i no es igual a 0, 1 ni 2"; 
endswitch; 
?> 
Es posible utilizar un punto y coma en lugar de dos puntos después de un caso como: 
<?php 
switch($beer) 
{ 
case 'tuborg'; 
case 'carlsberg'; 
case 'heineken'; 
echo 'Buena elección'; 
break; 
default; 
echo 'Por favor haga una nueva selección...'; 
break; 
} 
?> 
 
 
<?php 
$a = 0; 
if(++$a == 3) echo 3; 
elseif(++$a == 2) echo 2; 
elseif(++$a == 1) echo 1; 
else echo "No match!"; 
 
 
$a = 0; 
 
switch(++$a) { 
 case 3: echo 3; break; 
 case 2: echo 2;break; 
 case 1: echo 1; break; 
 default: echo "No match!"; break; 
} 
?> 
 
 
Curso : Programación Inicial Web 
Profesor: Pablo Lioi 
PHP Estructuras iniciales 
 
 
For 
 
(PHP 4, PHP 5, PHP 7, PHP 8) 
Los bucles for son los más complejos en PHP. Se comportan como sus homólogos en C. La sintaxis 
de un bucle for es: 
for (expr1; expr2; expr3) 
 sentencia 
 
La primera expresión (expr1) es evaluada (ejecutada) una vez incondicionalmente al comienzo del 
bucle. 
En el comienzo de cada iteración, se evalúa expr2. Si se evalúa como true, el bucle continúa y se 
ejecutan la/sy sentencia/s anidada/s. Si se evalúa como false, finaliza la ejecución del bucle. 
Al final de cada iteración, se evalúa (ejecuta) expr3. 
Cada una de las expresiones puede estar vacía o contener múltiples expresiones separadas por 
comas. En expr2, todas las expresiones separadas por una coma son evaluadas, pero el resultado se 
toma de la última parte. Que expr2 esté vacía significa que el bucle debería ser corrido 
indefinidamente (PHP implícitamente lo considera como true, como en C). Esto puede no ser tan 
inútil como se pudiera pensar, ya que muchas veces se debe terminar el bucle usando una sentencia 
condicional break en lugar de utilizar la expresión verdadera del for. 
Considere los siguientes ejemplos. Todos ellos muestran los números del 1 al 10: 
<?php 
/* ejemplo 1 */ 
 
for ($i = 1; $i <= 10; $i++) { 
echo $i; 
} 
 
/* ejemplo 2 */ 
 
for ($i = 1; ; $i++) { 
if ($i > 10) { 
break; 
} 
echo $i; 
} 
 
/* ejemplo 3 */ 
 
$i = 1; 
for (; ; ) { 
if ($i > 10) { 
break; 
} 
echo $i; 
https://www.php.net/manual/es/control-structures.break.php
Curso : Programación Inicial Web 
Profesor: Pablo Lioi 
PHP Estructuras iniciales 
$i++; 
} 
 
/* ejemplo 4 */ 
 
for ($i = 1, $j = 0; $i <= 10; $j += $i, print $i, $i++); 
?> 
Por supuesto, el primer ejemplo parece ser el mejor (o quizás el cuarto), pero se puede observar que 
la posibilidad de usar expresiones vacías en los bucles for resulta útil en muchas ocasiones. 
PHP también admite la sintaxis alternativa de los dos puntos para bucles for. 
for (expr1; expr2; expr3): 
 sentencia 
 ... 
endfor; 
 
Es una cosa común a muchos usuarios iterar por medio de arrays como en el siguiente ejemplo. 
<?php 
/* 
* Este es un array con algunos datos que se quieren modificar 
* cuando se recorra el bucle for. 
*/ 
$people = array( 
array('name' => 'Kalle', 'salt' => 856412), 
array('name' => 'Pierre', 'salt' => 215863) 
); 
 
for($i = 0; $i < count($people); ++$i) { 
$people[$i]['salt'] = mt_rand(000000, 999999); 
} 
?> 
El código anterior puede ser lento, debido a que el tamaño del array se capta en cada iteración. 
Dado que el tamaño nunca cambia, el bucle puede ser fácilmente optimizado mediante el uso de 
una variable intermedia para almacenar el tamaño en lugar de llamar repetidamente a count(): 
<?php 
$people = array( 
array('name' => 'Kalle', 'salt' => 856412), 
array('name' => 'Pierre', 'salt' => 215863) 
); 
 
for($i = 0, $size = count($people); $i < $size; ++$i) { 
$people[$i]['salt'] = mt_rand(000000, 999999); 
} 
 
 
https://www.php.net/manual/es/function.count.php
Curso : Programación Inicial Web 
Profesor: Pablo Lioi 
PHP Estructuras iniciales 
while 
(PHP 4, PHP 5, PHP 7, PHP 8) 
Los bucles while son el tipo más sencillo de bucle en PHP. Se comportan igual que su contrapartida 
en C. La forma básica de una sentencia while es: 
while (expr) 
 sentencia 
 
El significado de una sentencia while es simple. Le dice a PHP que ejecute las sentencias anidadas, 
tanto como la expresión while se evalúe como true. El valor de la expresión es verificado cada vez 
al inicio del bucle, por lo que incluso si este valor cambia durante la ejecución de las sentencias 
anidadas, la ejecución no se detendrá hasta el final de la iteración (cada vez que PHP ejecuta las 
sentencias contenidas en el bucle es una iteración). A veces, si la expresión while se evalúa como 
false desde el principio, las sentencias anidadas no se ejecutarán ni siquiera una vez. 
Al igual que con la sentencia if, se pueden agrupar varias instrucciones dentro del mismo bucle 
while rodeando un grupo de sentencias con corchetes, o utilizando la sintaxis alternativa: 
while (expr): 
 sentencias 
 ... 
endwhile; 
Los siguientes ejemplos son idénticos y ambos presentan los números del 1 al 10: 
<?php 
/* ejemplo 1 */ 
 
$i = 1; 
while ($i <= 10) { 
echo $i++; /* el valor presentado sería 
$i antes del incremento 
(post-incremento) */ 
} 
 
/* ejemplo 2 */ 
 
$i = 1; 
while ($i <= 10): 
echo $i; 
$i++; 
endwhile; 
?> 
Curso : Programación Inicial Web 
Profesor: Pablo Lioi 
PHP Estructuras iniciales 
 
do-while 
 
(PHP 4, PHP 5, PHP 7, PHP 8) 
Los bucles do-while son muy similares a los bucles while, excepto que la expresión verdadera es 
verificada al final de cada iteración en lugar que al principio. La diferencia principal con los bucles while 
es que está garantizado que corra la primera iteración de un bucle do-while (la expresión verdadera 
sólo es verificada al final de la iteración), mientras que no necesariamente va a correr con un bucle 
while regular (la expresión verdadera es verificada al principio de cada iteración, si se evalúa como 
false justo desde el comienzo, la ejecución del bucle terminaría inmediatamente). 
Hay una sola sintaxis para bucles do-while: 
<?php 
$i = 0; 
do { 
echo $i; 
0} while ($i > 0); 
?> 
El bucle de arriba se ejecutaría exactamente una sola vez, ya que después de la primera iteración, 
cuando la expresión verdadera es verificada, se evalúa como false ($i no es mayor que 0) y termina la 
ejecución del bucle. 
Los usuarios avanzados de C pueden estar familiarizados con un uso distinto del bucle do-while, para 
permitir parar la ejecución en medio de los bloques de código, mediante el encapsulado con do-while 
(0), y utilizando la sentencia break. El siguiente fragmento de código demuestra esto: 
<?php 
do { 
if ($i < 5) { 
echo "i no es lo suficientemente grande"; 
break; 
} 
$i *= $factor; 
if ($i < $minimum_limit) { 
break; 
} 
echo "i está bien"; 
 
/* procesar i */ 
 
} while (0); 
?> 
https://www.php.net/manual/es/control-structures.break.php

Continuar navegando