php - ING. EDGAR CRUZ

Anuncio
PHP
PHP HiperText Preprocesor
1
Tipos : Cadenas
●
Cadenas : Acceso a caracteres
–
Indices [ 0 .. longitud_cadena -1]
<?php
$cadena = “esto es una prueba”;
echo $cadena;
esto es una prueba
echo $cadena[0]; // Imprime el primer caracter
e
echo $cadena[6]; // Imprime el 7 caracter
s
$cadena[0]='E';
echo $cadena;
Esto es una prueba
?>
47
Variables predefinidas
●
Variables del servidor
–
$_SERVER
PHP_SELF
● SERVER_ADDR
● SERVER_ADDR
● DOCUMENT_ROOT
● QUERY_STRING
● REMOTE_ADDR
● HTTP_HOST
● ...
●
[http://es2.php.net/reserved.variables]
65
Constantes
●
Definición de constantes
– define($nombre,$valor)
– $nombre (string) : nombre de la constante
– $valor : Valor de la constante
<?php
define("const1","primera constante");
define("MAX",10);
echo MAX;
10
echo const1
primera constante
?>
66
Estructuras de control
●
Controlar la ejecución de instrucciones
●
Decidir en tiempo de ejecución que sentencias
ejecutar u omitir
●
Crear bloques repetitivos
●
En tiempo de ejecución / contexto
67
Estructuras de control : IF
●
Permite la ejecución condicional de sentencias
●
Si la condición se cumple en tiempo de
ejecución : se ejecuta un bloque de código
predeterminado
<?php
if (expr)
sentencia
?>
●
Las tabulaciones no son necesarias pero si
recomendables para la legibilidad el código
68
Estructuras de control : IF
●
expr : “cualquier cosa que tiene un valor”
<?php
$a = 5;
?>
–
Los literales son expresiones
–
–
'5' es una expresión con el valor 5
Las variables son expresiones
–
$a es una expresión con el valor 5
69
Estructuras de control : IF
●
expr : “cualquier cosa que tiene un valor”
–
Las comparaciones son una expresion con valores
booleanos (true o false ) (verdadero o falso)
<?php
$a = 10;
if ( $a > 0 )
echo “a es mayor que cero”;
?>
–
$a > 0 es una expresión con valor TRUE
70
Estructuras de control : IF
●
expr se evalúa a su valor condicional (boolean)
–
Si la expresión se evalúa como true se ejecuta la
sentencia
–
Si la expresión se evalúa como false no se ejecuta
la sentencia
<?php
$a = 10;
if ($a > 0)
print "a es mayor que 0";
if ($a)
print “a es diferente a 0”;
?>
71
Operadores de comparación
●
Operadores
Operacion
Nombre
$a == $b
$a === $b
$a != $b
Igual
Idéntico
Diferente
$a <> $b
$a !== $b
Diferente
No idénticos
$a < $b
$a > $b
$a <= $b
$a >= $b
Resultados
TRUE si $a es igual a $b.
TRUE si $a es igual a $b, y son del mismo tipo.
TRUE si $a no es igual a $b.
TRUE si $a no es igual a $b.
TRUE si $a no es igual a $b.TRUE si $a no es
igual a $b, o si no son del mismo tipo.
TRUE si $a es escrictamente menor que $b.
Menor que
TRUE si $a es estrictamente mayor que $b.
Mayor que
Menor o igual que TRUE si $a es menor o igual que $b.
Mayor o igual que TRUE si $a es mayor o igual que $b.
72
Operadores de comparación
●
Las expresiones de comparación siempre
devuelven un valor boolean
<?php
$a = 5;
$b = 0;
$c = "0";
var_dump($a>$b);
var_dump($a<$b);
var_dump($a>$c);
var_dump($b==$c);
var_dump($b===$c);
var_dump($b!=$c);
var_dump($b!==$c);
var_dump($b<>$c);
var_dump($a>=$b);
?>
//bool(true)
//bool(false)
//bool(true)
//bool(true)
//bool(false)
//bool(false)
//bool(true)
//bool(false)
//bool(true)
73
Estructuras de control : IF
●
Comparación
<?php
$a = 5;
$c = "0";
if($a>0)
echo “a es mayor que cero”;
if($c==0)
echo “c es igual a cero”
if($_SERVER['HTTP_USER_AGENT']=='MSIE')
echo “<link rel='stylesheet' type='text/css'”
.“href='style_ie.css'/>
if ($_SERVER['HTTP_USER_AGENT']=='Firefox')
echo “<link rel='stylesheet' type='text/css'”
.”href='style_firefox.css'/>”;
?>
74
Estructuras de control : IF
●
If : Bloques
–
Podemos agrupar bloque de instrucciones
mediante { }
<?php
if ($usuario != null ) {
echo “<span class='datos'>$nombre</span>”;
echo “<span class='datos'>$apellido</span>”;
echo “<span class='datos'>$telefono</span>”;
}
?>
75
Estructuras de control : IF
●
If : Anidar condiciones
–
Podemos anidar indefinidamente condiciones
<?php
if ($usuario != null ) {
echo “<span class='datos'>$nombre</span>”;
echo “<span class='datos'>$apellido</span>”;
echo “<span class='datos'>$telefono</span>”;
if($telefono2 != null){
echo “<span class='datos'>$telefono2</span>”;
}
}
?>
76
Estructuras de control : IF
●
If : Condiciones de múltiples expresiones
–
Operadores lógicos
<?php
if ( $edad < 18 ) {
...
}
if ( $edad >= 18 and $edad <=35 ){
...
}
if ( $edad > 35 and $edad <= 60){
...
}
//Solo si se cumplen
// las dos condiciones
//Solo si se cumplen
// las dos condiciones
?>
77
Estructuras de control : IF
●
If : Condiciones de múltiples expresiones
<?php
if ( $annos<18 or ($annos == 18 and
$mesNacimiento < $mesActual)) {
...
}
if ( $result!=null and ($numResult > 100 or $pagina=0)){
...
}
?>
78
Estructuras de control : IF ...
ELSE
●
else : Ejecutar sentencias en caso de que la
expresión evaluada en el if sea igual a false
<?php
echo “<link rel='stylesheet' type='text/css'”;
if ($_SERVER['HTTP_USER_AGENT']=='MSIE' ) {
echo “ href='style_explorer.css'/>”;
}
else{
echo “ href='style_firefox.css'/>”;
}
?>
79
Estructuras de control : ELSEIF
●
elseif : combinación if y else
–
Se ejecuta si if = false y se da otra condición nueva
<?php
echo “<link rel='stylesheet' type='text/css'”;
if ($_SERVER['HTTP_USER_AGENT']=='MSIE' ) {
echo “ href='style_explorer.css'/>”;
}
elseif ($_SERVER['HTTP_USER_AGENT']=='SAFARI'){
echo “ href='style_safari.css'/>”;
}
else{
echo “ href='style_firefox.css'/>”;
}
?>
80
Estructuras de control : ELSEIF
●
elseif : No hay limite de sentencias elseif
–
Solo una se ejecuta
<?php
if ($opcion==1 ) {
...
}
elseif ($opcion==2){ //Si se da la condición, se ejecuta
...
//el bloque y se sale de la estructura
}
elseif ($opcion==3){
...
}
else{
//Si no se da ninguna condición anterior
...
//Se ejecuta el bloque else
}
?>
81
Estructuras de control : SWITCH
●
switch : Comparar la misma variable
–
Similar a bloque if – elseif – else ( != 1 variable)
<?php
switch ($i) {
case 0:
echo "i = 0";
break;
case 1:
echo "i = 1";
break;
case 2:
echo "i = 2";
break;
}
?>
82
Estructuras de control : SWITCH
●
switch : sentencia break
–
Las sentencias se empiezan a ejecutar desde una
sentencia case que se cumpla hasta el final del
switch o hasta una sentencia break
<?php
$i=1;
switch ($i) {
case 0:
echo "i = 0";
break;
case 1:
echo "i = 1";
break;
case 2:
echo "i = 2";
break;
}
?>
i=1
<?php
$i=1;
switch ($i)
case 0:
echo
case 1:
echo
case 2:
echo
}
?>
{
"i = 0";
"i = 1";
"i = 2";
i=1i=2
83
Estructuras de control : SWITCH
●
switch : caso default
–
~ else : En caso de que no se cumpla ningún 'case'
<?php
$i=1;
switch ($i) {
case 0:
echo "i = 0";
break;
case 1:
echo "i = 1";
break;
case 2:
echo "i = 2";
break;
default:
...
}
?>
84
Estructuras de control : Bucles
●
Estructuras repetitivas
●
El código se ejecuta mientras se de una
condición
●
Diferentes tipos de bucles
●
Diferentes sentencias
85
Estructuras de control : Bucles
●
while
–
Tipo mas simple
–
while (expr) sentencia
–
Si la condición nunca obtiene el valor false
●
–
Bucle infinito !!!
Múltiples sentencias : { }
<?php
$i=0;
while($i<10){
echo $i;
$i=$i+1;
}
?>
86
Estructuras de control : Bucles
●
while
<?php
$valorMax=10;
$valorMin=1;
$aux=$valorMin;
while( $aux <= $valorMax ){
echo “<input type='radio' name='vota' value='$aux'/>$aux\n”;
$aux=$aux+1;
}
$cont=0;
while(!empty($imagenes[$cont])){
echo “<img src='{$imagenes[$cont]}'/>”;
$cont++;
}
?>
87
Estructuras de control : Bucles
●
do .. while
–
Similar a while : La condición se evalúa al final
<?php
$i = 0;
do {
print $i;
} while ($i>0);
?>
88
Estructuras de control : Bucles
●
For
–
for (expr1 ; expr2 ; expr3 ) sentencia
●
●
expr1 : Se ejecuta una sola vez al comienzo del bucle
expr2 : Se evalúa en el comienzo de cada iteración
–
–
●
true : el bucle continua ejecutándose
false : termina la ejecución del bucle
expr3 : Se ejecuta al final de cada iteración
<?php
for ($i=1;$i<=10;$i++){
echo “<input type='radio' name='vota' value='$i'/>$i\n”;
}
?>
89
Estructuras de control : Bucles
●
For
<?php
echo “<table”>;
for ($i=0;$i<$maxUsuarios;$i++){
echo “<tr>”;
echo “<td>{$usuario[$i]['nombre']}</td>”;
echo “<td>{$usuario[$i]['apellido']}</td>”;
echo “<td>{$usuario[$i]['dni']}</td>”;
echo “</tr>”;
}
echo “</table>”;
?>
Descargar