Académique Documents
Professionnel Documents
Culture Documents
Introduccin al PHP
Febrero-2006
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
Necesidades para programar en PHP
PC
Interprete de PHP
(http://www.php.net)
Intrprete PHP
I- Aspectos Generales
Primer programa en PHP
< HTML> <HEAD> <H M> <TITLE>Pri er Programa</TITLE> <H D> m <i > m m < > < /H EAD> < H D> < BOD Y> < OD > <?PHP <?PHP echo er programa; echo M pr mer programa ; Mi ?>iprimi < OD ?> > < /B OD Y> < H M > </HTML> Programa1.php
I- Aspectos Generales
Cmo incrustar cdigo en PHP
Forma ms recomendable
Siempre disponible (no depende de configuracin del Servidor. Especfica de PHP. nica que permite incrustar cdigo PHP en XML y XHTML
Otras formas
<SCRIPT LANGUAGE=php> ......................................... ............... ......................................... ............... </SCRIPT> <? ..................... ........ ..................... ........ ?> <% ..................... ........ ..................... ........ %>
<?php <?php ifif ($x<0) { ($x<0) { $y=1 ?>$y=1;; ?> Nmero negat vo Nmero <?php negativi o <?php } } e se { els$y=2 le{ ?>$y=2;; ?> Nmero pos t vo Nmero <?php positi ivi o <?php } } ?> ?>
Los scripts pueden ser divididos en bloques y escribir entre ellos HTML puro.
La funcin phpinfo() para obtener informacin acerca de su sistema y configuracin como las variables predefinidas disponibles
<?php <?php echo echo $_SERVER["HTTP_USER_AGENT"]; $_SERVER["HTTP_USER_AGENT"] ; ?> ?>
10 10
cdigo fuente. Se enmarca entre secuencias /* ..*/, b) // , c) # ..... Son ignorados por el compilador.
11 11
I- Aspectos Generales
Ejemplo
<?php <?php var_dump((bool) // var_dump((bool)""); ""); //bool(false) bool(false) var_dump((bool) // var_dump((bool)1); 1); //bool(true) bool(true) var_dump((bool) // var_dump((bool)-2); -2); //bool(true) bool(true) var_dump((bool) var_dump((bool)"foo"); "foo"); // //bool(true) bool(true) var_dump((bool) var_dump((bool)2.3e5); 2.3e5); // //bool(true) bool(true) var_dump((bool) var_dump((bool)array(12)); array(12));// //bool(true) bool(true) var_dump((bool) var_dump((bool)array()); array()); // //bool(false) bool(false) var_dump((bool) var_dump((bool)"false"); "false"); // //bool(true) bool(true) ?> ?>
14 14
16 16
<?php $a = 1.234; $b = 1.2e3; $c = 7E-10; ?> Conversin a flotante. Ver seccin en documentacin complementaria
17 17
18 18
Ejemplos de valores
20 20
21 21
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; ?> ?>
22 22
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 23 23
I- Aspectos Generales
Ejemplo is_array() <?php <?php $si sto',', 'es' s',, ' una na ma z' '));; $si = = a ay( esto arrrray('e' e' u' mattrrizi echo s_a ay $si ? Ma z<b > no es Ma echo z' _arrrray(($si)) attrr <brr>:: o es Ma echo "\n" is ? 'M' izi 'n' i ttrr ';; $no iz i = esto es una cadena echo "\n";; echo s_a ay $no ? Ma z' no es Ma z' $no = sto es una cadena';'; ?> 'e ' echo isi ;; ?> _arrrray(($no)) attrr ' ::' o es Mattrrizi ' ? 'M' izi n'
Matriz
Programacion en Lenguaje PHP 24 24
no es Matriz
25 25
empty() Permite saber si una variable que existe tiene un valor nulo o vaco
25 25
I- Aspectos Generales
Ejemplo isset(), unset() <?php <?php $var $va r = = ''';'; ifif ((sse sett($va ($varr)))){{ isi echo "Esta va ab e esta de n da asi echo bl esta i a,, asi que se"Esta mp m a esto "; varriai el deffini d $a = "p ueba"; i que se prrueba"; i irira esto.."; $b = "o ap im vai _dumpmisse $a TRUE }va TRUE } _dump sse $a $b $a = "pr$a unse rueba"; $b "ottrrapr va = _dump sse $a FALSE rueba"; var _dump((sse sett($a //TRUE va r_dump FALSE ($a)$b ) // is )); ; $i oo = NULL sett($ // /FALSE var _dump((sse va r_dump oo, ($a, /TRUE is $b))));; ?> i unsett (($a)) ;; varr_dump(( sett(($a)) // //FALSE isi )); ; Programacion en Lenguaje PHP
26 26
varr_dump(( sett(($a,, $b))));;// //FALSE isi $ffoo = NULL;; varr_dump(( sett(($ffoo) // //FALSE isi ))); ; ?>
27 27
El programador puede forzar la conversin de una variable de dos formas Mediante el uso de la funcin settype() $b=settype($a, string); Mediante el operador de conversin $b=(integer)$a; tambin llammado cast o molde
27
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.
28 28
29 29
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 30 30
Solo pueden definirse constantes con valores escalares (nmeros o cadenas) La definicin de constantes se realiza con la funcin 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 restriccin de mbito.
32 32
33 33
34 34
<?PHP <?PHP$edad=54; $edad=54; echo echomi miedad edades es$edad<BR>; $edad<BR>; echo echo mi miedad edades es ..$edad $edad.. <BR>; <BR>; echo echo<<<TEXTO <<<TEXTO mi miedad edad es es$edad<BR> $edad<BR> TEXTO; TEXTO;?> ?>
36 36
37 37
38 38
40 40
nota: variable >> nmero posiciones en bits /* dividir */ variable << nmero posiciones en bits /*multiplicar */
42 42
/*1 */ /*1 */
<?PHP $x=10; $y=20; echo ($x&$y); echo"<br>"; echo ($x|$y); ?> Resultado:
Programacion en Lenguaje PHP 43 43
/* 0 */ /* 30 */
45 45
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 46 46
47 47
48 48
49 49
Resumen de precedencias:
Mayor () [ -> . ++ --(cast), @ */% +. (concatenacion) << >> << = >> = ==, ! =, === &, ^, |,&&,|| condicional asignacion and, or, xor Menor 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)
50 50
51 51
54 54
12 txtnumero1 25 btnSumar
13 txtnumero2
55 55
En php cualquier valor distinto de 0 se considera true, 0 se considera falso. Sentencia. Puede ser simple, bloque o ninguna.
57 57
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
58 58
59 59
Sintaxis alternativa: PHP admite sintaxis alternativa para delimitar el bloque (til para fraccionar una estructura en dos scripts)
if (condicion) : sentencia1; .. sentencian; endif;
60 60
61 61
64 64
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.
65 65
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.
66 66
Sentencia incorporada en la versin php 4.0. (*) Permite recorrer todos los elementos de un array de una forma muy simple. En la primera iteracin la variable contendr el valor del primer elemento del array nombre_array en las siguientes iteraciones los sucesivos valores hasta recorrer todos los elementos del array
67 67
for (inicializacin; condicin; modificacin) : sentencia(s) a ejecutar si se cumple la condicin endfor; do { sentencia(s) a ejecutar si se cumple la condicin } while (expresin);
Programacion en Lenguaje PHP 68 68
Dentro de un bucle, ambas sentencias admite el uso de un parmetro opcional que indica: Nmero de estructuras de control de las que hay que salir o Nmero de niveles a saltar para continuar la ejecucin (break n; continue n;).
69 69
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 70 70
?>
71 71
73 73
function Potencia ($base, $exp) { $p=1; for ($i=1;$i<=$exp;$i++) $p=$p*$base; return $p; } $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 74 74
75 75
function suma () { $n=func_num_args(); $aux=0; for ($i=0;$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>; ?>
76 76
78 78
80 80
82 82
83 83
84 84
86 86
87 87
88 88
(*) Se vern en los correspondientes captulos Todo en http://www.php.net Otras referencias especficas de inters:
http://www.interec.com/tutoriales/manuales/php.phtml
Programacion en Lenguaje PHP 89 89
90 90
91 91
Transformacin de los ndices array_change_key_case (array, caso) Subdivisin array_chuck (array, dimensin, valor_booleano) Contabilizacin de elementos array_count_values (array) count (array)
93 93
95 95
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 (cadenas, valores numricos, otros arrays, ...) 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
Programacion en Lenguaje PHP 96 96
V- ARRAYS conceptos
Arrays unidimensiolanes 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
97 97
V- ARRAYS conceptos
Ejemplo.4.1.1- //Array lineal de 4 elementos
98 98
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=array(array(1,0),array(-1,-2));
99 99
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)
100 1001
102 1021
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.
103 1031
En caso de no utilizar la funcin mysql_close(), la conexin se cerrar al finalizar el script. la funcin die (), sirve para mostrar el aviso de error si $c no nulo, y abortar ejecucin del resto de programa
Programacion en Lenguaje PHP 104 1041
105 1051
106 1061
Aborta el programa si no se puede seleccionar la base de datos compras. Probar a cambiar compras por otros nombres
107 1071
109 1091
sentencia idntica a la anterior pero que permite ejecutar la sentencia sobre cualquier base de datos.
110 1101
111 1111
112 1121
$c $c= =mysql_connect mysql_connect(localhost, (localhost,root, root,); ); mysql_select_db (Compras, $c); mysql_select_db (Compras, $c); $strSQL= $strSQL=SELECT SELECT**FROM FROMArticulos;; Articulos;; $rs $rs= =mysql_query mysql_query($strSQL, ($strSQL,$c); $c); while ($registro = mysql_fetch_row($rs)) while ($registro = mysql_fetch_row($rs)){{ print(Codigo: print(Codigo:$registro[0].<br>); $registro[0].<br>); print(Articulo: $registro[1].<br>); print(Articulo: $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);
113 1131
EJEMPLO 8.3
Programacion en Lenguaje PHP 114 1141