Академический Документы
Профессиональный Документы
Культура Документы
Estructuras de Control y
Funciones en PHP
Profesor: Antonio Ognio
aognio@gmail.com
SIDET - PROGRAMA DE COMPUTACIN E INFORMTICA
Coordinador: Ing. Benigno Garca
Profesor: Antonio Ognio
E-mail: aognio@gmail.com
Fecha:
19/08/2006
Duracin: 3 horas
Pgina
Contenidos:
Fecha:
19/08/2006
Duracin: 3 horas
Pgina
Bloque de instrucciones
<?php
if ($edad>18) {
echo DNI: $dni<br>\n;
echo Estado Civil: $estado_civil<br>\n;
echo Direccin: $direccion<br>\n;
}
?>
?>
E-mail: aognio@gmail.com
Fecha:
19/08/2006
Duracin: 3 horas
Pgina
<?php
if ($edad>=18) {
echo Apta para solo para adltos;
} elseif ($edad>=14) {
echo Apta para mayores de 14;
} else {
echo Apta para todos;
}
?>
Profesor: Antonio Ognio
E-mail: aognio@gmail.com
Fecha:
Duracin: 3 horas
?>
19/08/2006
Pgina
switch-case
<?php
if ($i == 0)
print "i
} elseif ($i
print "i
} elseif ($i
print "i
}
{
igual
== 1)
igual
== 2)
igual
a 0";
{
a 1";
{
2";
?>
<?php
switch ($i) {
case 0:
print "i equal a 0";
break;
case 1:
print "i equal a 1";
break;
case 2:
print "i equal a 2";
break;
} ?>
Fecha:
19/08/2006
Duracin: 3 horas
Pgina
while
Sintaxis estndar:
<?php
$i = 1;
while($i<=100) {
echo $i;
$i=$i+1;
}
?>
Sintaxis alternativa:
<?php
$i = 1;
while($i<=100):
echo $i;
$i=$i+1;
endwhile;
?>
Fecha:
19/08/2006
Duracin: 3 horas
?>
?>
Documentacin
de PHP en espaol: http://www.php.net/manual/es/
Pgina
do-while
Sintaxis estndar:
<?php
$i = 1;
do {
echo $i;
$i=$i+1;
} while($i<=100);
?>
Sintaxis alternativa:
<?php
NO EXISTE
$i = 1;
do :
echo $i;
$i=$i+1;
while($i<=100);
?>
Fecha:
19/08/2006
Duracin: 3 horas
?>
?>
Documentacin
de PHP en espaol: http://www.php.net/manual/es/
Pgina
for
Se construye sobre la base del concepto de que todo for se puede implementar con un while
Es muy flexible y permite hacer incrementos, decrementos y cambios que no son posibles con
otros lenguajes de programacin.
Fecha:
?>
19/08/2006
Duracin: 3 horas
?>
Documentacin
de PHP en espaol: http://www.php.net/manual/es/
Pgina
Cuerpo
Condicin de control
Incremento
Fecha:
?>
19/08/2006
Duracin: 3 horas
?>
Documentacin
de PHP en espaol: http://www.php.net/manual/es/
Pgina
for
Se construye sobre la base del concepto de que todo for se puede implementar con un while
Est separado en cuatro partes: inicializacin, condicin de control, cuerpo e incremento
Es muy flexible y permite hacer incrementos, decrementos y cambios que no son posibles con
otros lenguajes de programacin.
Sintaxis estndar
Sintaxis alternativa
<?php
<?php
for($i=1;$i<=100;$i++) {
echo $i;
}
?>
for($i=1;$i<=100;$i++):
echo $i;
endfor;
?>
?>
E-mail: aognio@gmail.com
Fecha:
?>
19/08/2006
Duracin: 3 horas
Pgina
10
break
Termina la ejecucin de una
estructura de control
continue
Interrumpe la ejecucin del
cuerpo de bucle y salta a la
condicin
Salteando un valor:
<?php
$i = 1;
while(true) {
echo $i;
$i=$i+1;
if ($i==100) {
break;
}
} ?>
Profesor: Antonio Ognio
E-mail: aognio@gmail.com
<?php
$i = 0;
while($i<=100) {
$i=$i+1;
if ($i==50) {
continue;
}
echo $i;
}?>
Fecha:
19/08/2006
Duracin: 3 horas
Pgina
11
break puede recibir un parametro adicional que indica cuantos niveles de bucle deben saltar
El valor es un valor entero
<?
$i = 0;
while (++$i) {
switch ($i) {
case 5:
echo "Entramos a 5<br>\n";
break 1; /* Salimos solo del switch. */
case 10:
echo "Entramos al 10; saliendo<br>\n";
break 2; /* Salimos del switch y del while */
default:
break;
}
}
?>
Profesor: Antonio Ognio
E-mail: aognio@gmail.com
Fecha:
19/08/2006
Duracin: 3 horas
Pgina
12
<?php
$i = 0;
while ($i++ < 5) {
echo "While Externo<br>\n";
while (1) {
echo "While del centro<br>\n";
while (1) {
echo "While interno<br>\n";
continue 3;
}
echo "Esto nunca se imprime.<br>\n";
}
echo "Y esto tampoco.<br>\n";
}
?>
Profesor: Antonio Ognio
E-mail: aognio@gmail.com
Fecha:
19/08/2006
Duracin: 3 horas
Pgina
13
Referencias
En PHP4 cualquier asignacin es una copia por valor sin importa el tipo de datos
Los objetos en PHP4 tambin se asignan por valor lo que tambin se llama una clonacin
PHP4 permite que cualquier asignacin sea por referencia es decir no duplicar el valor crear
una copia sino apuntar al mismo valor en memoria a travs de otro identificador de variable
La sintaxis para las asignaciones por referencia consiste en anteponer el caracter & (ampersand)
antes del valor de la variable.
<?php
<?php
$a = 10;
$b = $a;
$c = &$a;
$c++;
$a++;
echo $a; // 12
echo $b; // 10
echo $c; // 12
echo $a; // 11
echo $b; // 10
echo $c; // 11
/* $a y $c estan unidas y
$b es independiente*/
?>
?>
Profesor: Antonio Ognio
E-mail: aognio@gmail.com
Fecha:
19/08/2006
Duracin: 3 horas
Pgina
14
Funciones en PHP
Su nombre debe ser un identificador vlido y no debe estar siendo usado por una funcin ya
definida (por ejemplo, en los mdulos de PHP)
Su cdigo no se ejecuta en forma lineal de arriba a abajo (top-down) sino que es ejecutado
cuando se invoca explicitamente la funcin en otra parte del cdigo
<?php
function calcular_segundos($horas) {
return $horas*60*60;
}
echo calcular_segundos(3); // 10800 segundos
?>
Fecha:
19/08/2006
Duracin: 3 horas
Pgina
15
Parmetros opcionales
Es posible definir parmetros opcionales asignado valores por defecto en la propia lista de
parmetros de la funcin
Cuando existen ms de un parmetro opcional y queremos darle un valor explcito a uno que
est ms hacia la derecha que otro es necesario definir tambin valores explcitos para los
parmetros que se encuentran antes de izquierda a derecha
<?php
function html_textbox($nombre, $ancho = 16, $longitud_maxima = 32) {
echo <input type=\text\ name=\$nombre\ width=\$ancho\ ;
echo maxlength=\$longitud_maxima\ />;
}
html_textbox(apellidos); // asume ancho = 16 y longitud_maxima = 32
html_textbox(email, 20, 64); // los valores por defecto son reemplazados
?>
Fecha:
19/08/2006
Duracin: 3 horas
Pgina
16
En ese caso los cambios que se produzcan en la variable dentro de la funcin afectan tambin a
la variable a la que se hace referencia fuera de la funcin
<?php
function incrementar(&$variable) {
$variable++;
}
$a = 10;
incrementar($a);
echo $a; // 11
?>
Fecha:
19/08/2006
Duracin: 3 horas
Pgina
17
La comando global permite indicar que una variable dentro de una funcin es una variable
global
<?php
$a = 10;
$b = 20;
function prueba_ambito() { // Procedimiento
global $a;
echo \$a: $a\n;
echo \$b: $b\n;
}
prueba_ambito() // Imprime $a: 10 y $b: (en blanco)
?>
Profesor: Antonio Ognio
E-mail: aognio@gmail.com
Fecha:
19/08/2006
Duracin: 3 horas
Pgina
18
Hay tres funciones que permiten realizar este tipo de implementaciones: func_nun_args(),
func_get_arg($arg_num) y func_get_args(). Solo tienen sentido llamndolas dentro de una
funcin.
<?php
function calcular_promedio() {
$num_args = func_num_args();
if ($num_args==0) return 0;
$acum = 0;
for($i = 0; $i < $num_args; $i++) {
$acum += func_get_arg($i);
}
return $acum / $num_args;
}
echo calcular_promedio(12, 20, 18, 17, 14, 15); // Imprime 16
Fecha:
19/08/2006
Duracin: 3 horas
Pgina
19
Variables variables
PHP permite hacer un tipo de operacin muy particular para implementar las llamadas variables
variables
Es posible referirse a una variable obteniendo su nombre del valor de otra variable
<?php
$a = 10;
$b = a;
echo $$b; // Imprime 10
for($i=1; $i<=10; $i++) {
$nombre_variable = variable_$i;
$$nombre_variable = 0;
}
// Se inicializaron con cero las variables $variable_1 a $variable_10
?>
Profesor: Antonio Ognio
E-mail: aognio@gmail.com
Fecha:
19/08/2006
Duracin: 3 horas
Pgina
20
Funciones variables
PHP no tiene apuntadores a funciones como C ni tampoco delegados como C#
Lo que tiene PHP es un mecanismo bastante simple pero eficiente llamado funciones variables
mediante el cul es posible hacer una llamada a una funcin usando el valor de una variable
como el identificador de la funcin
<?php
$procedencia = USA;
if ($procedencia == Peru) {
$funcion = calcular_impuesto_peru;
} else {
$funcion = calcular_impuesto_importacion;
}
$impuesto = $funcion($precio);
/* Se habr llamado a la funcin calcular_impuesto_importacion() */
Fecha:
19/08/2006
Duracin: 3 horas
Pgina
21
Ejercicio 01:
Cree un script PHP que imprima los valores de varias tablas de
multiplicar teniendo en cuenta las siguientes consideraciones:
El valor inicial y final de las tablas que se sean imprimir estar
indicado en las variables globales $tabla_inicio y $tabla_fin
Fecha:
19/08/2006
Duracin: 3 horas
Pgina
22