Introduccin Sintaxis bsica Tipos de datos Variables Constantes Expresiones y operadores Estructuras de control Funciones Tablas Bibliotecas de funciones Introduccin PHP es un lenguae de progra!acin interpretado "ise#ado originalmente para la creacin de pginas web dinmicas $sado principal!ente en interpretacin del lado del servidor %ctual!ente puede ser utili&ado desde una interfa& de lnea de comandos o en la creacin de otros tipos de progra!as 'aplicaciones con interfaz grfica usando las bibliotecas (t o )T*+, -a !ayor parte de su sintaxis .a sido to!ada de C/ 0a1a y Perl 2tras tecnolog3as de ser1idor4 Coldfusion/ 0SP/ PHP/ %SP o Web esttica vs dinmica Pgina esttica co!puesta por cdigo HT5-6 Cuando el arc.i1o es re7uerido por el na1egador/ el ser1idor lo en13a y tal cual Todos los 1isitantes 1ern el !is!o contenido6 Web esttica vs dinmica En sitio din!ico/ la pgina se procesa en el ser1idor antes de ser en1iada al na1egador6 El arc.i1o en php contiene cdigo php 7ue al ser eecutado generar cdigo html6 %l eecutar el cdigo/ pueden .acerse consultas8accesos a bases de datos u otros arc.i1oso o ser1icios6 El resultado final 7ue se en13a al na1egador tiene extensin php/ pero es cdigo H!"L 9esultado generado para este 1isitante en particular #s$uema de funcionamiento %inta&is bsica PHP es sensible a las !ay:sculas ;C!o se incrusta en la pgina <eb= <?PHP ... ?> Co!entarios4 co!o en C/ 8> ? >8 y 88 -as instrucciones se separan con un @ co!o en C6 -a !arca final = A i!plica un @ %inta&is bsica Para de1ol1er un texto4 echo y print ec.o4 !uestra una o !s cadenas ec.o cadenaB C/ cadenaD?E@ 88 no es una funcin echo Hola mundo; echo Hola , mundo; print4 !uestra una cadena print cadena@ 88 no es una funcin print Hola mundo; print Hola . mundo; %inta&is bsica Ee!plo4 <HTML> <HEAD> <TTLE>Mi primer pro!rama en PHP<"TTLE> <"HEAD> <#$D%> <?PHP echo &<p>Hola mundo<"p>'; ?> <"#$D%> <"HTML> %inta&is bsica $so de Fn para generar cdigo HT5- legible a, Sin Fn echo &<P>P(rra)o *<"P>'; echo &<P>P(rra)o +<"P>'; <P>P(rra)o *<"P><P>P(rra)o +<"P> P(rra)o * P(rra)o + Cdigo PHP Cdigo HT5- Salida %inta&is bsica $so de Fn para generar cdigo HT5- legible b, Con Fn echo &<P>P(rra)o *<"P>,n'; echo &<P>P(rra)o +<"P>,n'; <P>P(rra)o *<"P> <P>P(rra)o +<"P> P(rra)o * P(rra)o + Cdigo PHP Cdigo HT5- Salida %inta&is bsica Inclusin de fic.eros externos4 include', re$uire', %!bos incluyen y e1al:an el fic.ero especificado "iferencia4 en caso de error include', produce un <arning y re7uire', un error fatal Se usar re7uire', si al producirse un error debe interru!pirse la carga de la pgina Ee!plo4 %inta&is bsica <HTML> <HEAD> <TTLE>T-tulo<"TTLE> <?PHP "" ncluir .i.lioteca/ de )uncione/ re0uire &12li.dir"conecta.php1'; re0uire &12li.dir")echa.php1'; ?> <"HEAD> <#$D%> <?PHP include &1ca.ecera.html1'; ?> "" 34di!o HTML 5 PHP . . . <?PHP include &1pie.html1'; ?> <"#$D%> <"HTML> !ipos de datos PHP soporta G tipos de datos primitivos4 boolean/ integer/ double/ string 'escalares, array/ obect 'co!puestos, resource/ H$-- El tipo de una 1ariable no se suele especificar6 Se decide en tie!po de eecucin en funcin del contexto y puede 1ariar Funciones de interIs4 -a funcin gettype', de1uel1e el tipo de una 1ariable -as funciones isJtype co!prueban si una 1ariable es de un tipo dado4 isJarray',/ isJbool',/ isJfloat',/ isJinteger',/ isJnull',/ isJnu!eric',/ isJobect',/ isJresource',/ isJscalar',/ isJstring', !ipos de datos Tipo integer 'n:!eros enteros, DK/ LM/ N Tipo double 'n:!eros reales, B6DOP/ LM6OO Tipo boolean 'lgico, Valores4 true/ false 'insensibles a las !ay:sculas, El N y la cadena 1ac3a tienen 1alor false !ipos de datos Tipo string4 -as cadenas se encierran entre co!illas si!ples o dobles4 Qsi!plesR4 ad!ite los caracteres de escape FR 'co!illa si!ple, y FF 'barra,6 -as 1ariables '( se expanden SdoblesT4 ad!ite !s caracteres de escape/ co!o Fn/ Fr/ Ft/ FF/ FU/ FT6 -os no!bres de 1ariables %) se expanden 2a 6 7; echo 8a 9ale 2a:; "" mue/tra a 9ale 2a echo a 9ale 2a; "" mue/tra a 9ale 7 *ariables -as 1ariables sie!pre 1an precedidas de un U El no!bre es sensible a las !ay:sculas Co!ien&an por letra o subrayado/ seguido de letras/ n:!eros o subrayado Variables predefinidas del siste!a64 U)-2B%-S/ UJSE9VE9/ UJ)ET/ UJP2ST/ UJC22*IES/ UJFI-ES/ UJEHV/ UJ9E($EST/ UJSESSI2H V!bito4 globales al fic.ero 'excepto funciones, o locales a una funcin +onstantes "efinicin de constantes4 de)ine &3$;<TA;TE, hola'; echo 3$;<TA;TE; Ho lle1an U delante Slo se pueden definir constantes de los tipos escalares 'boolean/ integer/ double/ string, #&presiones , operadores 2peradores arit!Iticos4 +/ L/ >/ 8/ W/ ++/ LL 2perador de asignacin4 X operadores co!binados4 6X/ +X/ etc Ua X O@ Ua +X M@ a 1ale G Ub X S.ola T@ Ub 6X S!undoT@ b 1ale S.ola !undoT E7ui1ale a Ub X Ub 6 S!undoT@ 2peradores de co!paracin4 XX/ YX/ Z/ A/ ZX/ AX y otros 2perador de control de error4 [6 %ntepuesto a una expresin/ e1ita cual7uier !ensae de error 7ue pueda ser generado por la expresin 2peradores de cadena4 concatenacin4 6 'punto, asignacin con concatenacin4 6X 2peradores lgicos4 and '\\,/ or ']],/ Y/ xor #&presiones , operadores Precedencia de operadores 'de !ayor a !enor,4 55, == >, ", ? 5,= <, <6, >, >6 66, @6 AA BB #structuras de control ifLelse <.ile do 66 <.ile for foreac. s<itc. #structuras de control ifLelse if 'expresinB, sentencia B else if 'expresinD, sentencia D 666 else if 'expresin n, sentencia n else sentencia n+B 5is!o co!porta!iento 7ue en C -as sentencias co!puestas se encierran entre lla1es elseif puede ir todo unto #structuras de control <.ile Chile &eDpre/i4n' /entencia 5is!o co!porta!iento 7ue en C #structuras de control for )or &eDpre/i4n*; eDpre/i4n+; eDpre/i4nE' /entencia 5is!o co!porta!iento 7ue en C #structuras de control s<itc. /Citch &eDpre/i4n' F ca/e 9alor *G /entencia * .reaH; ca/e 9alor +G /entencia + .reaH; I ca/e 9alor nG /entencia n .reaH; de)ault /entencia n5* J 5is!o co!porta!iento 7ue en C/ slo 7ue la expresin del case puede ser integer/ float o string -unciones .eclaracin .eclaracin de funcines/ desde PHPP se pueden declarar antes y despuIs del lugar donde es lla!ada6 )unction /uma &2D, 2K'F "" Declaracion 2/ 6 2D 5 2K; return 2/; "" De9uel9e 9alor J -unciones Paso deparmetros Por defecto los par!etros se pasan por 1alor Para pasarlos por referencia utili&a!os el operador \ )unction incrementa &A2a' F 2a 6 2a 5 *; J 2a6*; incrementa &2a'; print 2a; "" Mue/tra un + -unciones 0rgumentos por defecto %rgu!entos por defecto )unction mue/tranom.re &2titulo 6 1<r.1' F print 1E/timado 2tituloG,n1; J mue/tranom.re &'; mue/tranom.re &1Pro).1'; Salida4 E/timado <r.G E/timado Pro).G -unciones 0rgumentos por defecto -os argu!entos con 1alores por defecto deben ser sie!pre los :lti!os4 )unction mue/tranom.re &2nom.re, 2titulo6 1<r.1' F print 1E/timado 2titulo 2nom.reG,n1; J mue/tranom.re &Lern(ndeM'; mue/tranom.re &Lern(ndeM, 1Pro).1'; Salida4 E/timado <r. Lern(ndeMG E/timado Pro). Lern(ndeMG 0rra,s 0rra,s asociativos $n array es una 1ariable 7ue est co!puesta de 1arios ele!entos a los 7ue pode!os acceder !ediante un 3ndice nu!Irico o una cla1e6 "eclaracin6 Sintaxis4 arraK &Ncla9e 6>O 9alor, ...' -a cla1e puede ser una cadena o un entero no ne!ati9o6 El 1alor puede ser de cualquier tipo vlido en PHP/ incluyendo otro array Ee!plos4 2colore/ 6 arraK &8roPo:6>*Q*, R6>R*, 8aMul:6>+RR'; 2medida/ 6 arraK &*Q, +R, *R'; %cceso4 echo 2colorN8roPo:O "" Mue/tra *Q*. ;o ol9idar la/ comilla/ echo 2medida/NQO "" Mue/tra *Q El pri!er ele!ento es el N Ta!biIn la cla1e puede ser o!itida4 2matriM 6 arraK&R 6> *, *+ 6> +'; 0rra,s 1ecorrido -a estructura de control foreach per!ite iterar sobre arrays Sintaxis4 )oreach &eDpre/i4nSarraK a/ 29alor' /entencia )oreach &eDpre/i4nSarraK a/ 2cla9e 6> 29alor' /entencia Ee!plos4 )oreach &2color a/ 29alor' print TalorG 29alor<#U>,n; )oreach &2color a/ 2cla9e 6> 29alor' print 3la9eG 2cla9e; TalorG 29alor<#U>,n; Salida4 TalorG *Q* TalorG R* TalorG +RR 3la9eG roPo; TalorG *Q* 3la9eG 9erde; TalorG R* 3la9eG aMul; TalorG +RR 0rra,s multidimensionales $na for!a !uy practica de al!acenar datos es !ediante la creacin de arrays !ultidi!ensionales 'tablas,6 $n array !ultidi!ensional es si!ple!ente un array en el 7ue al !enos uno de sus 1alores es/ a su 1e&/ un array6 Ee!plo4 2co/a/ 6 arraK & 1)ruta/1 6> arraK & 1a1 6> 1naranPa1, 1.1 6> 1.anano1, 1c1 6> 1manMana1 ', 1nVmero/1 6> arraK & *, +, E, W, R, 0rra,s hasta en la sopa Te gusten o no/ si deseas usar p.p/ debers fa!iliari&arte con los arrays6 Para recuperar datos de una base de datos/ obtienes un array6 Si dispones un conunto de for!ularios/ las 1ariables pueden !anearse en for!a de array@ a los autores de PHP los arrays les encantan6 Existen algunos arrays predefinidos de alcance global por lo 7ue pode!os acceder desde cual7uier parte de nuestro script6 $no de ellos es UJSE9VE96 2ibliotecas de funciones Existen !uc.as bibliotecas de funciones en PHP %lgunos ee!plos4 Funciones de !anipulacin de cadenas Funciones de fec.a y .ora Funciones de arrays Funciones de fic.eros Funciones !ate!ticas Funciones de bases de datos Funciones de red %lgunas bibliotecas re7uieren la instalacin de co!ponentes adicionales Todas las funciones de biblioteca estn co!entadas en la docu!entacin de PHP