Documentos de Académico
Documentos de Profesional
Documentos de Cultura
3 - 2 Curso de PHP
3 - 2 Curso de PHP
Introduccin al PHP
Ricardo Sez
Marta Zorrilla
Febrero-2006
Programacion en Lenguaje PHP
I- Aspectos Generales
Orgenes
PHP (Personal Home Page), 1994,
inventado por Rasmus Lerdof.
Basado en scripts desarrollados
en perl, luego reescritos en C.
Versin actual PHP5 (sept 2004),
presente en 20% de servidores
web en internet. 6 lenguaje mas
utilizado (C,Java, C++, VB, Perl)
I- Aspectos Generales
Caractersticas
Lenguaje interpretado del lado
Servidor. Los programas son
ejecutados a travs de un
intrprete antes de transferir al
cliente el resultado en forma de
HTML puro.
Programas embebidos
directamente en el cdigo HTML.
Sigue corriente Open Source.
Tanto intrprete como cdigo
fuente accesibles de forma
gratuita en la red
(http://www.php.net).
Sintaxis muy similar a C, Perl o
Java. Lenguaje fcil de aprender
I- Aspectos Generales
Caractersticas
Lenguaje multiplataforma (trabaja
sobre la mayora de servidores
Web y est preparado para
interactuar con ms de 20 tipos de
bases de datos).
Uso de maysculas, minsculas
indiferente (!!! Excepcin:
identificadores de variables)
Formato libre. Las instrucciones
deben terminar con ;
Comparado con otro tipo de
tecnologas similares resulta mas
rpido, independiente de la
plataforma y ms sencillo de
aprender y utilizar.
I- Aspectos Generales
Caractersticas
Lenguaje multiplataforma (trabaja
sobre la mayora de servidores
Web y est preparado para
interactuar con ms de 20 tipos de
bases de datos).
Innumerable cantidad de
funciones predefinidas
Correo electrnico.
Administracin gestin de base de datos.
Gestin de directorios y ficheros.
Tratamiento de imgenes.
Generacin y lectura de cookies.
Generacin de ficheros PDF...
I- Aspectos Generales
Necesidades para programar en PHP
PC
Sistema Operativo: Linux, Unix, Microsoft Windows,
Mac OS X ...
AppServ Open Project 2.4.5 (MySQL, Apache y PHP)
Servidor Web:
Editor de Texto Plano:
Apache, IIS, WPS
Notepad. Vi, Edit...
NotePad++
Apache
Interprete de PHP
Intrprete PHP
MySQL
I- Aspectos Generales
Primer programa en PHP
<<HTML>
HTML>
<HEAD>
<HEAD>
<TITLE>Primer
<TITLE>PrimerPrograma</TITLE>
Programa</TITLE>
</HEAD>
</HEAD>
<BODY>
<BODY>
<?PHP
<?PHP
echo
echoMi
Miprimer
primerprograma;
programa;
?>
?>
</BODY>
</BODY>
</HTML>
</HTML>
Programa1.php
I- Aspectos Generales
Cmo incrustar cdigo en PHP
Forma ms recomendable
<?PHP
....................
....................
....................
?>
Especfica de PHP.
nica que permite incrustar cdigo
PHP en XML y XHTML
Otras formas
<SCRIPT
LANGUAGE=php>
.........................................
...............
.........................................
...............
</SCRIPT>
<?
.....................
........
.....................
........
?>
<%
.....................
........
.....................
........
%>
I- Aspectos Generales
Cmo incrustar cdigo en PHP
<?php
<?php
ifif($x<0)
($x<0){{
$y=1;
$y=1;
echo
echoNmero
Nmero
negativo;
negativo;
}}
else
else{{
$y=2;
$y=2;
echo
echoNmero
Nmero
positivo;
positivo;
}}
?>
?>
<?php
<?php
ifif($x<0)
($x<0){{
$y=1;
$y=1;
?>
?>
Nmero
Nmeronegativo
negativo
<?php
<?php
}}
else
else{{
$y=2;
$y=2;
?>
?>
Nmero
Nmeropositivo
positivo
<?php
<?php
}}
?>
?>
I- Aspectos Generales
Elementos bsicos
Identificador: Nombre utilizado para
designar variables, etiquetas, funciones,
y dems objetos del programa. Combina
letras, dgitos y subrayado. Significativos
los 6 31 primeros.
10
I- Aspectos Generales
Elementos bsicos
Tipo de dato
Ejemplos de valores
entero decimal
1 123 2100 -12 90
entero hexadecimal
0x80 /* 128 en dec.*/
0x21B /* 539 en dec.l */
entero octal
0x12; /* 10 en decimal */
coma flotante
123.23, -76.00001, 1.4e3
cadena
programa en PHP
programacion OO
11
I- Aspectos Generales
Elementos bsicos
Variables: Posicin de memoria con
nombre.
Mantiene valores que pueden variar en
el programa.
No necesitan declararse.
No tienen tipo predefinido, puede
asignarse cualquier valor.
Nombres de variables comienzan con
$
En nombres de variables si se
distingue maysculas-minsculas.
Se forman por combinacin de letras,
dgitos y subrayado. Vlidas letras
acentuadas y
Una variable puede reutilizarse
asignndose datos, incluso de tipos
distintos.
12
I- Aspectos Generales
Elementos bsicos
Variables:
Se pueden reutilizar en el tiempo,
incluso dndoles valores de diferentes
tipos.
Adems de variables definidas por el
programador, existen variables
predefinidas a las que se tiene acceso
desde los scripts.
Puede haber nombre de variables que
sean a su vez variables
<?PHP
<?PHP
$variable=x;
$variable=x;
....
....
$$variable=150;
$$variable=150;
$x=150
$x=150
?>
?>
//equivale
//equivaleaa
13
I- Aspectos Generales
Elementos bsicos
Ejemplos
Variables vlidas:
$x, $da_de_maana, $variable2
Variables no vlidas:
x, $da-de-maana, $2variable, $dto%
Asignacin de variables:
<?PHP
<?PHP
$x=5;
$x=5;
$y=3;
$y=3;
echo
echox=$x<BR>y=$y;
x=$x<BR>y=$y;
$x=5*$x*$y;
$x=5*$x*$y;
echo
echox=$x<BR>y=$y;
x=$x<BR>y=$y;
?>
?>
14
I- Aspectos Generales
Elementos bsicos
Variables
Funciones para conocer el tipo de dato
que guarda una variable:
gettype()
is_array()
is_float()
determina si contiene un nm.
en coma flotante.
is_int()
determina si contiene un
nmero entero.
is_object() determina si hace referencia a
un objeto.
is_string() determina si contiene una
cadena de caracteres.
Programacion en Lenguaje PHP
15
I- Aspectos Generales
Elementos bsicos
Otras funciones de inters:
isset()
Permite conocer si una variable ha sido
definida. Importante para saber si se han
recibido todos los datos de un formulario.
unset()
Permite eliminar una variable. Borra el
contenido de la misma y libera el espacio
en memoria que ocupaba.
empty()
Permite saber si una variable que existe
tiene un valor nulo o vaco
16
I- Aspectos Generales
Elementos bsicos
Variables
La primera vez que se usa una variable
y se le da un valor, automticamente
PHP le asigna un tipo a dicha variable.
17
I- Aspectos Generales
Elementos bsicos
3 localizaciones:
- fuera de todas las funciones, en el
script del documento (globales)
- en cuerpo de las funciones (locales)
- en definicin de parmetros
(parmetros formales)
Ambito de una variable; en que lugares
una variable es conocida y puede ser
usada
(*) Por defecto tienen mbito global
Variables globales:
Se conocen en todo el programa
documento
Se declaran fuera de las funciones
Existen en todo el documento, incluso si
hay varios scripts.
Pueden ser referenciadas dentro de una
funcin solo si se declaran como global
dentro de la funcion.
Programacion en Lenguaje PHP
18
I- Aspectos Generales
Elementos bsicos
Ejemplo1: Uso de variables globales
<? PHP
..
$radio=100;
$pi=3.141568;
..
?>
.
<? PHP
.
$area= $radio*$pi;
................
?>
Ejemplo2: Uso de variables globales
dentro de una funcin
$iva=1.17;
function importe_total ($bruto) {
global $iva;
$i=$bruto*$iva;
return $i;
}
Programacion en Lenguaje PHP
19
I- Aspectos Generales
Elementos bsicos
Variables locales:
Se declaran dentro de la funcin
Slo pueden ser referenciadas dentro
de la funcin o bloque donde fueron
declaradas
Slo existen mientras se ejecuta el
bloque donde estn declaradas.
el uso de variables locales ayuda a
prevenir fenmenos no deseados
las variables locales no pueden
retener sus valores entre llamadas a la
funcin
Parmetros formales:
Si una funcin utiliza argumentos,
debe declarar las variables que van a
aceptar los valores de los argumentos
(parmetros formales). Se comportan
como var. locales
Programacion en Lenguaje PHP
20
I- Aspectos Generales
Elementos bsicos
Ejemplo-1: uso de variables locales y
parametros
..
function importe_final ($precio) {
$x=$precio*1.17;
return $x;
}
function descuento ($importe) {
$x=$importe;
if ($importe > 20000)
$x=$importe-$importe*0.25;
return $x;
}
..
Ejemplo-2: uso de parametros
function cuadrado ($valor) {
return ($x*$x);
}
Programacion en Lenguaje PHP
21
I- Aspectos Generales
Elementos bsicos
Constantes: Valores fijos no alterables
por el programa. Son los valores que
asignamos a las variables.
Solo pueden definirse constantes con
valores escalares (nmeros o
cadenas)
La definicin de constantes se realiza
con la funcion define()
Los identificadores de constantes no
comienzan con $ de las variables
Por convenio se usan maysculas
para los identificadores de
constantes.
Las constantes no tienen restriccion
de mbito.
22
I- Aspectos Generales
Elementos bsicos
Ejemplo-1: uso de constantes
define(NOMBRE_EJERCICIO, Ej-1);
define (DESCUENTO, 0.25);
define(TIPO_IVA,1.17);
define (IMPORTE_MAXIMO, 20000);
echo NOMBRE EJERCICIO;
$importe=$importe*(1+TIPO_IVA);
if ($importe >IMPORTE_MAXIMO) {
$importe =$importe*(1-DESCUENTO);
}
echo $importe;
..
23
I- Aspectos Generales
Elementos bsicos
Secuencias de Escape: permiten
representar caracteres no imprimibles
(retorno de carro, tabulacin, etc), y
confiere portabilidad al cdigo.
\n salto de lnea
\r retorno de carro
\ comilla doble
\ comilla simple
\0 nulo
\t tabulacin horiz.
\\ barra invertida
\N carcter cuyo codigo ASCII en octal es
N
\xN carcter cuyo codigo ASCII en
hexadecimal es N
Ejemplo:
echo El radio=$radio\tArea=$area\nFin;
El radio=1
Fin
Area=3.14
24
I- Aspectos Generales
Elementos bsicos
Cadenas de caracteres:
Las cadenas son arrays de caracteres por
lo que se puede acceder a los diferentes
caracteres que la forman de manera
individual mediante su ndice.
cadena[1] accede al segundo carcter
guardado en la variable cadena
Para su definicin se pueden utilizar como
delimitadores las comillas simples o las
dobles pero no ambas a la vez.
La diferencia entre el uso de comillas
dobles y simples como delimitadores de
cadenas es, adems de las secuencias
de escape que acepta, que las variables
dentro de una cadena con comillas
dobles se expanden (se sustituyen por
su valor).
Programacion en Lenguaje PHP
25
I- Aspectos Generales
Elementos bsicos
Cadenas de caracteres y variables:
Existe otra forma de expandir variables
dentro de cadenas que PHP hereda de
Perl
<<<NOMBRE_IDENTIFICADOR
............................
NOMBRE_IDENTIFICADOR
<?PHP
<?PHP $edad=54;
$edad=54;
echo
echomi
miedad
edades
es$edad<BR>;
$edad<BR>;
echo
echomi
mi edad
edades
es ..$edad
$edad..
<BR>;
<BR>;
echo
echo<<<TEXTO
<<<TEXTO
mi
mi edad
edades
es $edad<BR>
$edad<BR>
TEXTO;
TEXTO; ?>
?>
26
I- Aspectos Generales
Elementos bsicos
Operadores:
En PHP hay 5 clases
- aritmticos
- relacionales
- lgicos
- a nivel de bits
- especiales
27
I- Aspectos Generales
Elementos bsicos
aritmticos:
pueden aplicarse a casi todos
los tipos de datos numricos.
operadores
- resta, tambin monario
+ suma
* multiplicacin
/
divisin (si operandos enteros, divisin entera)
% divisin en mdulo (resto divisin entera)
-- decremento (precede/sigue a operando)
++ incremento
(precede/sigue a operando)
Ejemplo1:
$x=10;
$y=++$x;
Ejemplo2:
/* x=11, y=11 */
x=10;
$y=$x++;
/*x=11, y=10 */
Ejemplo3:
$x=10; $y=2*--$x; $z= ++$x-$y--;
/* x=10, y=17, z=-8 */
28
I- Aspectos Generales
Elementos bsicos
relacionales :
pueden aplicarse sobre los
datos predefinidos y dan
como resultado un valor
lgico.
operadores
> mayor que
>= mayor o igual que
< menor que
<= menor o igual que
== igual que
=== igual que + son del mismo tipo
!= distinto de
!== distinto que + son de distinto tipo
29
I- Aspectos Generales
Elementos bsicos
Ejemplo-1:
$x=10;
$y=30;
if ($x=$y) /* $x ==$y */
echo los dos valores son iguales;
else
echo los dos valores son diferentes;
Resultado-1: ???????????
Ejemplo-2:
$x=10000;
$y=10000;
if ($x==$y)
/* $x ===$y */
echo verdadero;
else
echo falso;
Resultado-2: ???????????
30
I- Aspectos Generales
Elementos bsicos
lgicos:
se aplican sobre operandos
lgicos y dan como resultado
un valor lgico.
operadores
&&
Y
$x&&$y cierto si tanto $x como $y son cierto
and
Y
$xand$y cierto si tanto $x como $y son cierto
||
O
$x || $y cierto si $x $y son cierto
or
O
$x or $y cierto si $x $y son cierto
xor O exclusivo
$x xor $y cierto si $x $y cierto, no ambos
!
negacin
!$x
cierto si $x tiene valor falso
Programacion en Lenguaje PHP
31
I- Aspectos Generales
Elementos bsicos
a nivel de bits
vlidos para tipo entero.
operadores
& AND
$x & $y
| OR
$x | $y
^ O exclusiva
&x ^ &
- complemento a 1
-$x
>> desplazamiento a derecha
<< desplazamiento a izquierda
nota:
variable >> nmero posiciones en bits
/* dividir */
variable << nmero posiciones en bits
/*multiplicar */
32
I- Aspectos Generales
Elementos bsicos
otros operadores:
operador ? (condicional) se
utiliza con sentencias
condicionales
formato
exp1?exp2:exp3;
evala exp1, si cierto, se evala exp2 y toma
ese valor para la expresin. Si exp1 es falsa,
evala exp3 tomando ese valor para la
expresin.
Ejemplo
$par= ($n %2 ==0) ? 1:0;
operador . (concatenacin)
permite concatenar cadenas
formato
cadena1.cadena2
Ejemplo
$titulo1= Lenguaje;
$titulo2=PHP;
$titulo=$titulo1. de programacion.$titulo2;
Programacion en Lenguaje PHP
33
I- Aspectos Generales
Elementos bsicos
operador @ (supresin de
error)
el interprete PHP no genera mensajes de error
aunque detecte situaciones errneas
Ejemplo
$y= @(1/0);
operador ` (ejecucin)
la expresin encerrada entre acentos debe ser
tratada como una sentencia a ejecutar
directamente por el sistema operativo
Ejemplo
<?php
$x=`dir`;
echo <pre> $x </pre>;
?>
/* genera una pagina web con el contenido del
directorio donde est */
Programacion en Lenguaje PHP
34
I- Aspectos Generales
Elementos bsicos
operador cast (conversin
de tipo)
formato
(tipo) expresion;
Ejemplo
$x=(int) 15.65;
$p= (string) 2006;
35
I- Aspectos Generales
Elementos bsicos
operadores parntesis y corchetes
los primeros cambian la precedencia natural de
los operadores, los segundos llevan a cabo la
indexacin de arrays (proporcionan el ndice del
array)
Resumen de precedencias:
Mayor
() [ -> .
++ --(cast), @
*/%
+. (concatenacion)
<< >>
<< = >> =
==, ! =, ===
&, ^, |,&&,||
condicional
asignacion
and, or, xor
I-D
D-I
I-D (aritmticos)
I-D (aritmticos)
I-D
I-D (relacionales)
I-D (relacionales)
I-D (relacionales)
I-D (lgicos)
I-D
I-D (lgicos)
Menor
36
I- Aspectos Generales
Elementos bsicos
Expresiones: Es cualquier combinacin
vlida de operadores, variables y
constantes.
37
38
39
<HTML>
<HTML>
<HEAD>
<HEAD>
<TITLE>Numero
<TITLE>Numeropar
paroo
impar</TITLE>
impar</TITLE>
</HEAD>
</HEAD>
<BODY>
<BODY>
<?php
<?php
ifif
(!is_int($_POST[txtNumero]))
(!is_int($_POST[txtNumero]))
print
printValor
Valorintroducido
introducido
no
es
entero;
no es entero;
elseif
elseif
($_POST[txtNumero]%2
($_POST[txtNumero]%2==
==0)0)
print
printEl
Elnmero
nmeroes
espar;
par;
else
else
print
printEl
Elnmero
nmeroes
es
impar;
impar;
?>
?>
</BODY></HTML>
</BODY></HTML>
40
41
if anidado
Es una variante del if consistente en una
sentencia if objeto de otro if o else.
En PHP, al igual que en C, el else est
asociado al if ms prximo que no tenga
sentencia else asociada
42
43
44
45
46
47
48
for
forma general
for (inicializacin; condicin; incremento)
sentencia;
Descripcin
inicializacin-> sentencia de asignacin
para iniciar variable de control de ciclo.
condicin -> expresin relacional.
incremento -> determina como cambia la
variable de control.
49
do-while
analiza la condicin a final del ciclo.
forma general
do {
sentencia;
} while (condicion);
Descripcin
el bucle itera hasta que la condicin se hace
falsa.
50
51
52
53
de bloque
grupo de sentencias relacionadas
que se tratan como una unidad
Los bloques comienzan con { y
concluyen con }
Se pueden colocar en cualquier
punto de programa
Programacion en Lenguaje PHP
54
IV- Funciones
Introduccin
Es la base de toda actividad de programa
forma general
function NombreFuncion (argumentos) {
sentencias;
return ValorDevuelto;
}
Ejemplo-3.1 /* calcula basen */
function potencia ($base, $n) {
int i,p;
$p=1;
for ($i=1;$i<=$n; $i++)
$p=$p*$base;
return $p;
}
55
IV- Funciones
llamada
Llamada a las funciones:
La funcin debe de estar definida antes
de realizar la llamada (en PHP 4 y 5, no)
En la llamada, los argumentos deben
pasarse en el orden en que aparecen en
la definicin de parmetros.
Si se pasan menos argumentos que
parmetros definidos, los ltimos se
asumirn nulos
Si la funcin devuelve un valor, este
puede asignarse a yuan variable o ser
usado en otra expresin.
Ejemplo-3.2 con la funcin anterior, las
siguientes llamadas son validas
$x=2;
$y=3;
$z=potencia($x,$y);
$z=potencia(2,3);
$x=2;
Echo POTENCIA($x,3);
$z=suma(2,3);
Programacion en Lenguaje PHP
56
IV- Funciones
Argumentos
argumentos: es una de las formas
en que dos funciones
intercambian informacin.
argumento: valor usado en una
llamada a funcin (tambin
parmetro actual)
parmetro: nombre de las
variables locales que aparecen
entre parntesis en la declaracin
de la funcin (tambin parmetro
formal). En PHP todos los
argumentos pueden ser
considerados opcionales
57
IV- Funciones
Argumentos
Ejemplo-3.3 /* Potencias */
<? PHP
$b1=2; $b2=-2;
for ($i=0;$i<10; $i++) {
echo potencia($b1,$i);
echo potencia($b2,$i);
echo potencia(potencia($b1,$b2),$i); }
?>
</BODY>
</HTML>
Programacion en Lenguaje PHP
58
IV- Funciones
Argumentos
- los parmetros formales y
actuales deben ser del mismo tipo.
- al definir funciones pueden darse
valores por defecto a los
argumentos: si no est presente
en la llamada se le asigna ese
valor defecto (asignar parmetro a
valor)
- listas de argumentos de longitud
variable: permitido a partir de
PHP4 (ejemplo 3.4)
59
IV- Funciones
Argumentos
Ejemplo-3.4 /* Listas de argumentos de
longitud variable */
<? PHP
function suma () {
$n=func_num_args();
$aux=0;
for ($i=1;$i<$n;$i++)
$aux += func_get_arg($i);
return aux;
}
print suma (2,5,6). <BR>;
print suma (1,5,7,2). <BR>;
print suma ().<BR>;
?>
Resultado:
13
15
0
60
IV- Funciones
Paso de parmetros
Paso de parmetros: definen la
forma en que pasan argumentos a
las funciones.
Llamada por valor: se copia el
valor del argumento en el
parmetro formal de la funcin.
Los cambios en los parmetros de
la funcin no afectan a las
variables que se usan en la
llamada.
Llamada por referencia: se copia
la direccin del argumento en el
parmetro formal de la funcin.
Los cambios en los parmetros de
la funcin afectan a las variables
que se usan en la llamada.
Programacion en Lenguaje PHP
61
IV- Funciones
Paso de parmetros
- Para indicar que un argumento se
pasa por referencia, se debe
anteponer & al nombre de la
variable en la lista de parmetros.
Ejemplo-3.5: /* ppv-cuadrado de un
valor dado */
function cuadrado ($x) {
$x=$x*$x;
return $x;
}
.....
$t=10;
print ($t,cuadrado($t));
....
62
IV- Funciones
Paso de parmetros
Ejemplo-3.6: /* suma de dos nmeros */
<? PHP
Opcin-1:
function suma($x,$y) {
Opcin-2:
function suma(&$x,&$y) {
$c=$x+$y;
$x+=10;
$y*=3;
return ( $c);
}
?>
<HTML>
<HEAD>
<TITLE> Ejemplo de SUMAS </TITLE>
</HEAD>
<BODY>
<? PHP
$a=10; $b=10; $c=0;
echo valores a sumar: a=$a,b=$b);
print (Antes:
suma=$c, a=$a, b=$b <BR>);
$c=suma($a,$b);
print (Despues:
suma=$c, a=$a, b=$b <BR>);
?>
</BODY>
</HTML>
Programacion en Lenguaje PHP
63
IV- Funciones
Paso de parmetros
Ejemplo de SUMAS
opcion-1: (ppv)
Valores a sumar: a=10, b=10
Antes:
suma=0, a=10, b=10
Despues:
suma=20, a=10, b=10
opcion-2: (ppr)
Valores a sumar: a=10, b=10
Antes:
suma=0, a=10, b=10
Despus:
suma=20, a=20, b=30
64
IV- Funciones
Paso de parmetros
Ejemplo-3.7 intercambio de dos valores
<? PHP
function intercambio (&$x, &$y) {
$temp=$x;
$x=$y;
$y=$temp;
}
?>
<HTML>
<HEAD>
<TITLE> Ejemplo INTERCAMBIO </TITLE>
</HEAD>
<BODY>
<? PHP
$x=10;$y=20;
print(valores iniciales x=$x,y=$y <BR>);
inter($x,$y);
printf(valores finales x=$x,y=$y BR>);
?>
</BODY>
</HTML>
Programacion en Lenguaje PHP
65
IV- Funciones
Ambito de las variables
reglas de mbito: controlan si un
fragmento de cdigo conoce o tiene
acceso a otro segmento de cdigo o
datos.
- Toda variable definida dentro de una
funcin tiene mbito local.
- Una variable declarada fuera de una
funcin tiene un mbito global y no
puede ser usada dentro si no se declara
global
- Variable esttica local: tipo especial de
variable local que no pierde su valor
cuando termina la ejecucin de la
funcin. Precisa usar static en su
declaracin
66
IV- Funciones
conceptos varios
sentencia return: tiene dos usos:
- forzar la salida inmediata de la funcin
- devolver valor
clasulas include y require:
permiten insertar en un programa
cdigo que se encuentra en un fichero
externo.
sintaxis
include(mifichero.php);
require(mifichero.php);
diferencias
En caso de no localizar mifichero.php,
require produce -Error Fatal- y no
ejecuta el resto del programa. Include
genera aviso y contina con ejecucin
del resto de programas.
67
IV- Funciones
conceptos varios
funciones variables: el nombre de una
funcin puede ser almacenado en una
variable durante la ejecucin del
programa (ejemplo-3.8)
valores retornables por una funcion:
puede ser de cualquier tipo: cadena de
caracteres, valor numrico, valor
booleano, array, ...Siempre ir asociado
con la sentencia return
68
IV- Funciones
conceptos varios
Ejemplo-3.8 Funciones Variables
<? PHP
function suma (&$x, &$y) {
return ($a+$b);
}
function resta (&$x, &$y) {
return ($a-$b);
}
function producto (&$x, &$y) {
return ($a*$b);
}
function cociente (&$x, &$y) {
return ($a/$b);
}
?>
<HTML>
<HEAD>
<TITLE> Operaciones aritmticas </TITLE>
</HEAD>
<BODY>
<? PHP
$operador=array(+,-,*,/);
$x=10;
$b=100;
Programacion en Lenguaje PHP
69
IV- Funciones
conceptos varios
for ($i=0;$i<4;$i++) {
switch ($operador[i]) {
case +:
$accion=suma;
break;
case -:
$accion=resta;
break;
case *:
$accion=producto;
break;
case /:
$accion=cociente;
break;
}
$resultado=$accion($a,$b);
print(Resultado:
$a $operador[i] $b=$resultado <BR>);
}
?>
</BODY>
</HTML>
70
IV- Funciones
conceptos varios
recursividad: es la propiedad que en C
tienen las funciones de llamarse a si
mismas
caractersticas de la recursividad:
- en las funciones recursivas existir un if
que permite a la funcin volver sin
ejecutar de nuevo la funcin.
- las versiones recursivas no minimizan
tamao de cdigo ni ahorran espacio de
almacenamiento de variables.
- las versiones recursivas son mas lentas
que las iterativas equivalentes.
- Un nmero elevado de llamadas a
funcin pueden desbordar la pila.
- Determinados algoritmos de ordenacin
(quitsort) son idneos para tratarlos con
funciones recursivas. Tambin
problemas de inteligencia artificial.
Programacion en Lenguaje PHP
71
IV- Funciones
conceptos varios
Ejemplo-3.9 Funcion Factorial
/* version factorial-iterativa */
function factorial($n)
{
$respuesta=1;
for ($t=1; $t<=$n;$t++)
$respuesta *=$t;
return $respuesta;
}
/* version factorial-recursiva */
function factorial($n)
{
if ($n==1) return 1;
$respuesta=factorial($n-1)*$n;
return $respuesta;
}
72
IV- Funciones
predefinidas
PHP cuenta con mas de 700 funciones
predefinidas que pueden ser utilizadas
en el programa sin necesidad de invocar
librera alguna.
Una breve clasificacin:
Matemticas
Trabajo con fechas
Trabajo con cadenas
Trabajo con arrays
Ficheros y directorios (*)
Acceso a bases de datos (*)
Comunicaciones (*)
73
IV- Funciones
predefinidas
Matemticas
abs (n)
round (n)
ceil (n)
floor (n)
cos (n)
sin (n)
tan (n)
exp (a)
log (n)
min (n1, n2, ...) ; min (array)
max (n1, n2, ...) ; max (array)
pow (a, b)
rand (min, mx), mtrand (min, mx)
sqrt (a)
74
IV- Funciones
predefinidas
Reconocimiento de caracteres
ctype_alnum (cadena)
ctype_space (cadena)
ctype_alpha (cadena)
ctype_digit (cadena)
ctype_lower (cadena)
ctype_upper (cadena)
ctype_print (cadena)
ctype_punct (cadena)
Conversin cadena-array
explode (separador, cadena, lmite)
implode (separador, array)
join (separador, array)
str_word_count (cadena, formato)
Prolongacin de cadena
str_pad (cadena, longitud, cadena_aad, clase_ad)
str_repeat (cadena, nmero)
75
IV- Funciones
predefinidas
Modificacin de cadena
str_replace (buscar, reemplazar, cadena)
strrev (cadena)
strtolower (cadena)
strtoupper(cadena)
substr_replace (cadena, reemplazar, posic, long)
ucfirst (cadena)
ucwords (cadena)
Comparacin de cadenas
strcasecmp (cadena1, cadena2)
strcmp (cadena1, cadena2)
strnatcasecmp (cadena1, cadena2)
strnatcmp (cadena1, cadena2)
Bsqueda de datos
strchr (cadena, carcter)
strrchr (cadena, carcter)
stristr (cadena, fragmento)
strstr (cadena, fragmento)
strpos (cadena, fragmento, inicio_bsqueda)
strrpos (cadena, carcter)
substr (cadena, longitud_inicial, longitud)
substr_count (cadena, fragmento)
Programacion en Lenguaje PHP
76
IV- Funciones
predefinidas
Subdivisin de cadenas
wordwrap (cadena, ancho, separacin)
strtok (cadena, delimitador)
Longitud de una cadena
strlen (cadena)
77
IV- Funciones
predefinidas
Bsqueda de datos
array_filter (array, funcin)
array_keys (array, elementos)
array_key_exists (indice, array)
array_rand (array, num_elementos)
array_search (elemento_buscado, array, v_logico)
array_values (array)
in_array (elemento, array)
Generacin de arrays
array_combine (indices, elementos)
compact (ListaVariables)
extract (array, extraccin)
range (inicio, final, aumento)
array_slice (array, fragmento, dimensin)
array_splice (array, frag, dim, nuevo)
Combinacin de arrays
array_merge (array1, array2, array3, ...)
array_diff_assoc (array1, array2, array3, ...)
array_diff (array1, array2, array3, ...)
array_intersect_assoc (array1, array2, array3, ...)
array_intersect (array1, array2, array3, ...)
Programacion en Lenguaje PHP
78
IV- Funciones
predefinidas
Prolongacin/truncamiento de array
array_fill (indice, cantidad, elemento)
array_pad (array, tamao_final, elemento_nuevo)
array_pop (array)
array_push (array, elemento1, elemento2, ...)
array_shift (array)
array_unique (array)
array_unshift (array, elemento1, elemento2, ...)
Aplicacin de funciones
array_map (funcin, array1, array2, array3, ...)
array_walk (array, nombreFuncin, argumentos)
asort (array), arsort (array)
ksort (array), krsort (array)
natsort (array) , natcasesort (array)
array_reverse (array)
sort (array), rsort (array)
79
V- ARRAYS
Introduccin
Un array es una coleccin de
datos que se referencian con un
nombre comn
En PHP los datos pueden ser de
diferente tipo
A cada elemento especifico del
array se accede mediante un
ndice
No es necesario determinar la
dimensin antes de inicializarlo
Existen multitud de funciones que
permiten la gestin y manipulacin
de arrays.
Constan de posiciones de
memoria consecutivas; la
direccin mas baja es la del primer
elemento
Pueden tener una o varias
dimensiones
Programacion en Lenguaje PHP
80
V- ARRAYS
conceptos
Arrays unidimensionales
son en esencia listas de
informacin heterognea
guardadas en posiciones
contiguas de memoria
formatos y ejemplos de uso
$nombre_variable[indice]=valor;
valor= contenido del elemento
indce= elemento del array
nombre_variable= identificador del
arrary
81
V- ARRAYS
conceptos
Ejemplo.4.1.1- //Array lineal de 4 elementos
$X[0]=1;
$X[1]=una cadena;
$X[2]=3;
$X[ ]=ultimo elemento
Ejemplo.4.1.2- //Array lineal de 4 elementos
$micuenta[numero_cuenta]=20001;
$micuenta[titular]=Jose Perez;
$micuenta[saldo=12000;
$micuenta[fecha_pago]=01012006;
Ejemplo.4.1.5- //mi cuenta bancaria
$micuenta=array([numero_cuenta=>200,
titular=>Jose Perez,
saldo=>12000,u_pago=>01012006) ;
Programacion en Lenguaje PHP
82
V- ARRAYS
conceptos
Arrays multidimensionales
es un array cuyos elementos son a
su vez nuevos arrays
formatos y ejemplos de uso
$nombre_variable[indice1][indice2]..[indic
eN]= valor;
Ejemplo.4.2.1- //Array de 2x2 elementos
$X[0][0]=1;
$X[0][1]=0;
$X[1][0]=-1;
$X[1][1]=-2;
Ejemplo.4.2.2- //Array de 2x2 elementos
$X=array(array(1,0),array(-1,-2));
83
V- ARRAYS
conceptos
Aspectos varios:
La funcion print_r ( ) muestra
los elementos de un array
La manipulacin de los
elementos requiere uso de
sentencias iterativas (foreach,
for, etc.)
Funciones para manipulacin de
arrays (ver captulo III)
La manipulacin de los
elementos requiere uso de
sentencias iterativas (foreach,
for, etc.)
84
Cierre de conexin
mysql_close (identificador)
En caso de no poner el identificador se cerrar la
ltima conexin abierta. La funcin devuelve un
valor entero, que ser nulo si se produce algn error
en el proceso.
85
86
87
88
89
90
$c
$c==mysql_connect
mysql_connect(localhost,
(localhost,root,
root,);
);
mysql_select_db
mysql_select_db(Compras,
(Compras,$c);
$c);
$strSQL=
$strSQL=SELECT
SELECT**FROM
FROMArticulos;;
Articulos;;
$rs
$rs==mysql_query
mysql_query($strSQL,
($strSQL,$c);
$c);
while
while($registro
($registro==mysql_fetch_row($rs))
mysql_fetch_row($rs)){{
print(Codigo:
print(Codigo:$registro[0].<br>);
$registro[0].<br>);
print(Articulo:
print(Articulo:$registro[1].<br>);
$registro[1].<br>);
print(Descripcin:
print(Descripcin:$registro[2].<br>);
$registro[2].<br>);
print(Precio:
print(Precio:$registro[3]
$registro[3]euros.<br>);
euros.<br>);
}}
mysql_close
mysql_close($c);
($c);
91
92