Índice
|
Estructuras de Control |
==> PHP | Estructura comparativa if
<?php
if ($a > $b) {
print "a es mayor que b";
} elseif ($a == $b) {
print "a es igual que b";
} else {
print "a es menor que b";
}
?> | Caso sencillo de la utilización de la estructura comparativa if con else y elseif |
Cerrar |
|
==> PHP | Estructura de control comparativa alternativa if
<?php
if ($a == 5):
print "a es igual a 5";
print "...";
elseif ($a == 6):
print "a es igual a 6";
print "!!!";
else:
print "a no es ni 5 ni 6";
endif;
?> | Otra forma de representar una estructura if. |
Cerrar |
|
==> PHP | Los bucles while
<?php
/* ejemplo 1 */
$i = 1;
while ($i <= 10) {
print $i++; /* el valor impreso sería
$i antes del incremento
(post-incremento) */
}
/* ejemplo 2 */
$i = 1;
while ($i <= 10):
print $i;
$i++;
endwhile;
?> | Dos formas simples de ver la estructura while. En los dos casos se imprime de 1 a 10. |
Cerrar |
|
==> PHP | Un bucle que se ejecuta solo una vez.
<?php
$i = 0;
do {
print $i;
} while ($i>0);
?> | El bucle de arriba se ejecutaría exactamente una sola vez, después de la primera iteración, cuando la condición se comprueba, se evalúa como FALSE ($i no es más grande que 0) y la ejecución del bucle finaliza. |
Cerrar |
|
==> PHP | El bucle for
<?php
/* ejemplo 1 */
for ($i = 1; $i <= 10; $i++) {
print $i;
}
/* ejemplo 2 */
for ($i = 1; ;$i++) {
if ($i > 10) {
break;
}
print $i;
}
/* ejemplo 3 */
$i = 1;
for (;;) {
if ($i > 10) {
break;
}
print $i;
$i++;
}
/* ejemplo 4 */
for ($i = 1; $i <= 10; print $i, $i++) ;
?> | Por supuesto, el primer ejemplo parece ser el mas elegante (o quizás el cuarto), pero uno puede descubrir que ser capaz de usar expresiones vacías en bucles for resulta útil en muchas ocasiones. |
Cerrar |
|
==> PHP | foreach Vs while
<?php
$arr = array("uno", "dos", "tres");
reset ($arr);
while (list(, $valor) = each ($arr)) {
echo "Valor: $valor<br>\n";
}
foreach ($arr as $valor) {
echo "Valor: $valor<br>\n";
}
?> | Puede haber observado que las siguientes son funcionalidades idénticas: Cuando foreach comienza su primera ejecución, el puntero interno de la matriz se reinicia automáticamente al primer elemento de la matriz. Esto significa que no se necesita llamar a reset() antes de un bucle foreach. |
Cerrar |
|
==> PHP | Como escapar de un bucle for, while, o switch (break)
<?php
$arr = array ('uno', 'dos', 'tres', 'cuatro', 'Alto', 'cinco');
while (list (, $val) = each ($arr)) {
if ($val == 'Alto') {
break; /* También podemos poner 'break 1;' aquí. */
}
echo "$val<br>\n";
}
/* Se puede utilizar esta otra forma. */
$i = 0;
while (++$i) {
switch ($i) {
case 5:
echo "En 5<br>\n"; /* saliendo solo del switch */
break 1;
case 10:
echo "Al 10; saliendo<br>\n";
break 2; /* Saliendo del switch y del while. */
default:
break;
}
}
?> | break escapa de la estructuras de control iterante (bucle) actuales for, while, o switch.
también accepta un parámetro opcional, el cual determina cuantas estructuras de control hay que escapar. |
Cerrar |
|
==> PHP | Saltar el resto del bucle (continue)
<?php
while (list ($key, $value) = each ($arr)) {
if (!($key % 2)) { // Saltar partes odd
continue;
}
do_something_odd ($value);
}
$i = 0;
while ($i++ < 5) {
echo "Exterior<br>\n";
while (1) {
echo " Medio<br>\n";
while (1) {
echo " Interior<br>\n";
continue 3;
}
echo "Esto nunca se imprime.<br>\n";
}
echo "Y esto tampoco.<br>\n";
}
?> | continue se usa dentro de la estructura del bucle para saltar el resto de la iteración actual del bucle y continuar la ejecución al comienzo de la siguiente iteración.
continue accepta un parámetro opcional, el cual determina cuantos niveles (bluces) hay que saltar antes de continuar con la ejecución. |
Cerrar |
|
==> PHP | Utilizar switch en lugar de muchos if
<?php
if ($i == 0) {
print "i igual a 0";
} elseif ($i == 1) {
print "i igual a 1";
} elseif ($i == 2) {
print "i igual a 2";
}
switch ($i) {
case 0:
print "i igual a 0";
break;
case 1:
print "i igual a 1";
break;
case 2:
print "i igual a 2";
break;
}
?> | La sentencia switch es similar a una serie de sentencias IF en la misma expresión. |
Cerrar |
|
==> PHP | Asignar comportamientos (declare)
<?php
// Estos son lo mismo:
// se puede usar este:
declare(ticks=1) {
// script completo aqui
}
// o este:
declare(ticks=1);
// script completo aqui
?> | Directiva permite asignar el comportamiento del bloque declare. Actualmente una sola directiva es reconocida: la directiva ticks.
Un "tick" es un evento que ocurre por cada N sentencias de bajo nivel ejecutadas dentro del bloque declare. (buscar tick) |
Cerrar |
|
==> PHP | Directiva o evento Ticks
<?php
// La función que grabamos en el tiempo la llamamos función perfil($dump = FALSE)
{
static $profile;
// restauramos el tiempo en el perfil, lo borramos
if ($dump) {
$temp = $profile;
unset ($profile);
return ($temp);
}
$profile[] = microtime ();
}
// establecemos la llamada al tick
register_tick_function("profile");
// Inicializamos la función antes de declara el bloque
profile ();
// iniciamos el bloque de código
declare (ticks=2) {
for ($x = 1; $x < 50; ++$x) {
echo similar_text (md5($x), md5($x*$x)), "<br />;";
}
}
// Vemos los datos almacenados en el perfil
print_r (profile (TRUE));
?> | Un "tick" es un evento que ocurre por cada N sentencias de bajo nivel ejecutadas dentro del bloque declare. El valor de N es especificado por ticks=N como directiva dentro de declare.
El evento que ocurre en cada "tick" es especificado usando la función register_tick_function(). Tener en cuenta que mas de un evento puede ocurrir por cada "tick".
funciones relacionadas: register_tick_function() y unregister_tick_function().
|
Cerrar |
|
==> PHP | Llamada a un archivo (require, include, require_once, include_once)
<?php
require 'prepend.php';
require $somefile;
require ('somefile.txt');
?> | require() y include() son idénticas en todos los aspectos excepto en el modo de actuar ante un error. include() produce un Warning mientras que require() produce un Error Fatal.
include_once() debería de usarse en casos en los que, un mismo fichero puede ser incluido y evaluado más de una vez durante la ejecución de un script, y se quiere estar seguro que se incluye una sola vez para evitar problemas con redefiniciones de funciones
Funciones relacionadas: require(), include(), include_once(), get_required_files(), get_included_files(), readfile(), y virtual(). |
Cerrar |
|
Índice |