PHP
Estructuras de Control
Buscar..
Sintaxis alternativa para estructuras de control.
PHP proporciona una sintaxis alternativa para algunas estructuras de control: if
, while
, for
, foreach
y switch
.
Cuando se compara con la sintaxis normal, la diferencia es, que la llave de apertura se sustituye por dos puntos ( :
) y la llave de cierre se sustituye por endif;
al endwhile;
endfor;
, endforeach;
, o endswitch;
, respectivamente. Para ejemplos individuales, vea el tema sobre la sintaxis alternativa para las estructuras de control .
if ($a == 42):
echo "The answer to life, the universe and everything is 42.";
endif;
Múltiples declaraciones de elseif
que usan sintaxis corta:
if ($a == 5):
echo "a equals 5";
elseif ($a == 6):
echo "a equals 6";
else:
echo "a is neither 5 nor 6";
endif;
Manual de PHP - Estructuras de control - Sintaxis alternativa
mientras
while
bucle se repite a través de un bloque de código siempre que una condición especificada sea verdadera.
$i = 1;
while ($i < 10) {
echo $i;
$i++;
}
Salida: 123456789
Para obtener información detallada, consulte el tema Bucles .
hacer mientras
do-while
bucle do-while
while primero ejecuta un bloque de código una vez, en cada caso, luego itera a través de ese bloque de código siempre que una condición específica sea verdadera.
$i = 0;
do {
$i++;
echo $i;
} while ($i < 10);
Output: `12345678910`
Para obtener información detallada, consulte el tema Bucles .
ir
El operador goto
permite saltar a otra sección en el programa. Está disponible desde PHP 5.3.
La instrucción goto es un goto seguido de la etiqueta de destino deseada: goto MyLabel;
.
El objetivo del salto se especifica mediante una etiqueta seguida de dos puntos: MyLabel:
Este ejemplo imprimirá Hello World!
:
<?php
goto MyLabel;
echo 'This text will be skipped, because of the jump.';
MyLabel:
echo 'Hello World!';
?>
declarar
declare
se utiliza para establecer una directiva de ejecución para un bloque de código.
Se reconocen las siguientes directivas:
Por ejemplo, establezca marcas en 1:
declare(ticks=1);
Para habilitar el modo de tipo estricto, la declare
declaración se utiliza con la declaración strict_types
:
declare(strict_types=1);
si mas
La instrucción if
en el ejemplo anterior permite ejecutar un fragmento de código, cuando se cumple la condición. Cuando desea ejecutar un fragmento de código, cuando no se cumple la condición, puede extender el if
con else
.
if ($a > $b) {
echo "a is greater than b";
} else {
echo "a is NOT greater than b";
}
Manual de PHP - Estructuras de control - Si no
El operador ternario como sintaxis abreviada para if-else
El operador ternario evalúa algo basándose en que una condición es verdadera o no. Es un operador de comparación y se usa a menudo para expresar una condición simple en caso de que exista en una forma más corta. Permite probar rápidamente una condición y, a menudo, reemplaza una línea multilínea if, lo que hace que su código sea más compacto.
Este es el ejemplo anterior utilizando una expresión ternaria y valores de variables: $a=1; $b=2;
echo ($a > $b) ? "a is greater than b" : "a is NOT greater than b";
Salidas: a is NOT greater than b
.
incluir y requerir
exigir
require
es similar a include
, excepto que producirá un error de nivel E_COMPILE_ERROR
fatal en E_COMPILE_ERROR
error. Cuando el require
falla, detendrá el script. Cuando la include
falla, no detendrá la secuencia de comandos y solo emitirá E_WARNING
.
require 'file.php';
Manual de PHP - Estructuras de control - Requerir
incluir
La declaración de include
incluye y evalúa un archivo.
./variables.php
$a = 'Hello World!';
. / main.php`
include 'variables.php';
echo $a;
// Output: `Hello World!`
Tenga cuidado con este enfoque, ya que se considera un olor de código , ya que el archivo incluido está modificando la cantidad y el contenido de las variables definidas en el alcance dado.
También puede include
archivo, que devuelve un valor. Esto es extremadamente útil para manejar matrices de configuración:
configuracion.php
<?php
return [
'dbname' => 'my db',
'user' => 'admin',
'pass' => 'password',
];
main.php
<?php
$config = include 'configuration.php';
Este enfoque evitará que el archivo incluido contamine su alcance actual con variables modificadas o agregadas.
Manual de PHP - Estructuras de control - Incluir
include & require también se puede usar para asignar valores a una variable cuando se devuelve algo por archivo.
Ejemplo:
archivo include1.php:
<?php
$a = "This is to be returned";
return $a;
?>
archivo index.php:
$value = include 'include1.php';
// Here, $value = "This is to be returned"
regreso
La declaración de return
devuelve el control del programa a la función de llamada.
Cuando se llama a return
desde dentro de una función, la ejecución de la función actual terminará.
function returnEndsFunctions()
{
echo 'This is executed';
return;
echo 'This is not executed.';
}
Cuando ejecutas returnEndsFunctions();
obtendrás la salida This is executed
;
Cuando se llama a return
dentro de una función con y argumento, la ejecución de la función actual finalizará y el valor del argumento se devolverá a la función que llama.
para
for
bucles se utilizan normalmente cuando tienes un fragmento de código que deseas repetir un número determinado de veces.
for ($i = 1; $i < 10; $i++) {
echo $i;
}
Salidas: 123456789
Para obtener información detallada, consulte el tema Bucles .
para cada
foreach
es una construcción, que le permite iterar sobre matrices y objetos fácilmente.
$array = [1, 2, 3];
foreach ($array as $value) {
echo $value;
}
Salidas: 123
.
Para usar el bucle foreach
con un objeto, debe implementar la interfaz Iterator
.
Cuando iteras sobre matrices asociativas:
$array = ['color'=>'red'];
foreach($array as $key => $value){
echo $key . ': ' . $value;
}
Salidas: color: red
Para obtener información detallada, consulte el tema Bucles .
si otra cosa más
elseif
elseif
combina if
y if
else
. La instrucción if
se extiende para ejecutar una instrucción diferente en caso de que la expresión original if
no se cumpla. Pero, la expresión alternativa solo se ejecuta cuando se cumple la expresión condicional elseif
.
El siguiente código muestra "a es más grande que b", "a es igual a b" o "a es más pequeño que b":
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";
}
Varias declaraciones de elseif
Puede usar varias sentencias elseif dentro de la misma sentencia if:
if ($a == 1) {
echo "a is One";
} elseif ($a == 2) {
echo "a is Two";
} elseif ($a == 3) {
echo "a is Three";
} else {
echo "a is not One, not Two nor Three";
}
Si
La construcción if permite la ejecución condicional de fragmentos de código.
if ($a > $b) {
echo "a is bigger than b";
}
Manual de PHP - Estructuras de control - Si
cambiar
La estructura del switch
realiza la misma función que una serie de sentencias if
, pero puede hacer el trabajo en menos líneas de código. El valor que se va a probar, como se define en la declaración de switch
, se compara para igualar con los valores en cada una de las declaraciones de case
hasta que se encuentra una coincidencia y se ejecuta el código en ese bloque. Si no se encuentra una declaración de case
coincidente, se ejecuta el código en el bloque default
, si existe.
Cada bloque de código en un case
o declaración por default
debe terminar con la declaración de break
. Esto detiene la ejecución de la estructura del switch
y continúa la ejecución del código inmediatamente después. Si se omite la instrucción break
, se ejecuta el código de la siguiente declaración de case
, incluso si no hay coincidencia . Esto puede causar la ejecución inesperada del código si se olvida la instrucción break
, pero también puede ser útil cuando varias declaraciones de case
necesitan compartir el mismo código.
switch ($colour) {
case "red":
echo "the colour is red";
break;
case "green":
case "blue":
echo "the colour is green or blue";
break;
case "yellow":
echo "the colour is yellow";
// note missing break, the next block will also be executed
case "black":
echo "the colour is black";
break;
default:
echo "the colour is something else";
break;
}
Además de probar valores fijos, la construcción también puede ser obligada a probar declaraciones dinámicas al proporcionar un valor booleano a la instrucción switch
y cualquier expresión a la declaración del case
. Tenga en cuenta que se utiliza el primer valor coincidente, por lo que el siguiente código dará como resultado "más de 100":
$i = 1048;
switch (true) {
case ($i > 0):
echo "more than 0";
break;
case ($i > 100):
echo "more than 100";
break;
case ($i > 1000):
echo "more than 1000";
break;
}
Para posibles problemas con la escritura suelta mientras se usa la construcción del switch
, consulte Cambiar sorpresas