Curso de programacion con PHP y MySQL Español

download Curso de programacion con PHP y MySQL Español

of 76

  • date post

    03-Jun-2018
  • Category

    Documents

  • view

    223
  • download

    0

Embed Size (px)

Transcript of Curso de programacion con PHP y MySQL Español

  • 8/12/2019 Curso de programacion con PHP y MySQL Espaol

    1/76

    Curso de p ro gr a ma cin en

    PHP con My SQL(P H P Ve r si n 5.1.2, MySQL ve r si n 5.0.24)

    Aut or: Cdr ic Si mon Copyri ght Cdri c Simon, 2006

    www.detodoprogramacion.com

  • 8/12/2019 Curso de programacion con PHP y MySQL Espaol

    2/76

    Juegos, Revistas, Cursos, Software, Sistemas Operativos, Antivirus yms Gratis para el Conocimiento...!

    www.detodoprogramas.com

    Vistanos y comprubalo

    Material para los amantes de la Programacin Java,C/C++/C#,Visual.Net, SQL, Python, Javascript, Oracle, Algoritmos,

    CSS, Desarrollo Web, Joomla, jquery, Ajax y Mucho Mas

    www.detodoprogramacion.com

    Visitanos

    Libros Universitarios, Contabilidad, Matemticas, obras literarias,Administracin, ingeniera y mas

    http://www.detodoprogramas.com/http://www.detodoprogramacion.com/http://www.detodolibros.com/http://www.detodoprogramacion.com/http://www.detodoprogramas.com/http://www.detodoprogramacion.com/http://www.detodoprogramas.com/
  • 8/12/2019 Curso de programacion con PHP y MySQL Espaol

    3/76

    1. n di c e 1. n dice ................................................................................................................................................................... 2. In t rodu cci n al curso............................................................................................................................................

    2.1.Obj et ivo d e este curso..............................................................................................................................................5 2.2.Manu al del alumno..................................................................................................................................................5

    2.3. R equ isitospa r aat end er aeste curso.....................................................................................................................5

    3. In t rodu cci n al PHP .............................................................................................................................................. 3.1. Que esel PHP?........................................................................................................................................................6

    3.2.P or qu ut ilizar amos el PHP?.............................................................................................................................6 3.3. Nav egad ore sweb......................................................................................................................................................6

    4. El pr otocol o HTTP ................................................................................................................................................ 4.1.Modelo d e consu lta / re spu esta HTTP..................................................................................................................7 4.2. Deta llesde una consulta..........................................................................................................................................7

    4.3. Deta llesde respuesta................................................................................................................................................8

    4.4.Par m etrosde consulta...........................................................................................................................................9 4.5.M todos de consulta.................................................................................................................................................9

    5. Ins talaci n del PHP ............................................................................................................................................... 5.1. Objetivo del capitulo..............................................................................................................................................11 5.2. Cual versin?........................................................................................................................................... ...............11 5.3. Instalacin de PHP.................................................................................................................................................11

    5.4. Instalacin de Eclipse y del plugin para PHP....................................................................................................12 5.4.1. Inicializacin del plugin para PHP.............................................................................................................12 5.4.2. Configuracin de Apache...........................................................................................................................12

    5.5. Instalacin de MySQL...........................................................................................................................................13

    6. Prime ra pgi na PHP ..................................................................................................................................... ...... ... 6.1.Obj et ivo d el capitulo..............................................................................................................................................14 6.2. C re acin de un nu evoproyec to web....................................................................................................................14

    6.3. C re acin de lapg ina d e ndice...........................................................................................................................14

    7.U tili z aci n de l os s c riptlet s......................................................................................................................... ...... ...... . 7.1. Qu son losscriptlets?.........................................................................................................................................16 7.2. Separ acinde instrucciones..................................................................................................................................16

    8.C ar acte r s tic as del le ngu aje PHP ............................................................................................................................. 8.1.Obj et ivo d el capitulo..............................................................................................................................................17

    8.2.Lista d e Pal ab r asClave.........................................................................................................................................17

    8.3.Sensibilidad.............................................................................................................................................................17 8.4. Identificadores........................................................................................................................................................17 8.5.Declaracin de variables.......................................................................................................................................18 8.6.Ti possimp les( oprimitivos).................................................................................................................................18

    8.6.1. Boolean.......................................................................................................................................................19 8.6.2. Enteros........................................................................................................................................................19 8.6.3. Nme ros d e punto flotante.........................................................................................................................21 8.6.4. Cadenas......................................................................................................................................................21 8.6.5. Matrices......................................................................................................................................................26 8.6.6. Objetos........................................................................................................................................................29 8.6.7. Recurso.......................................................................................................................................................29

    www.detodoprogramacion.com

  • 8/12/2019 Curso de programacion con PHP y MySQL Espaol

    4/76

    8.6.8. NULL............. ............... ............. .............. ............... .............. ............. ................ ............. ........ ...... ...... ...... .29

    8.7.Constantes...............................................................................................................................................................30 8.7.1. Sintaxis.......................................................................................................................................................30

    8.8.Operadores..............................................................................................................................................................30 8.8.1. Pr incipale s ope r ador es sobr e integer y float...............................................................................................31 8.8.2. Op er ador es d eComparacin......................................................................................................................31 8.8.3. Op er ador es d eLgica.................................................................................................................................33 8.8.4. Op er ador Ternario......................................................................................................................................33

    8.9.Man ipu lacinde Tipos..........................................................................................................................................33 8.9.1. Mold eamient o d eTipos..............................................................................................................................34 8.9.2. Pr eced encia d eOperadores........................................................................................................................35

    8.10.Comentarios..........................................................................................................................................................36

    9. Deci si one s y bucles................................................................................................................................................. 9.1.Obj et ivo d el capitulo..............................................................................................................................................37 9.2.if... elseif...else.........................................................................................................................................................37

    9.3. S int axi s Alter nat iva d e Estr uctu r asde Control................................................................................................37 9.4. switch........................................................................................................................................................................38

    9.5.while..........................................................................................................................................................................38

    9.6. do ...while................................................................................................................................................................39 9.7. for..............................................................................................................................................................................39 9.8.foreach......................................................................................................................................................................40

    9.9. break.........................................................................................................................................................................40 9.10. continue..................................................................................................................................................................40

    10. Funciones......................................................................................................................................................... 10.1. Funciones definidas por el usuario....................................................................................................................41

    10.1.1. Funciones Condicionales..........................................................................................................................41 10.1.2. Funciones dentro de funciones.................................................................................................................41 10.1.3. Parmetros de las funciones.....................................................................................................................42 10.1.4. Devolvie ndo valores.................................................................................................................................43

    10.2.Fun cionesint er nas (incorporadas)....................................................................................................................44 10.2.1. Unas d e las funcione s internas ms interesantes......................................................................................44

    10.3.Fun cionesvariables..............................................................................................................................................46 10.3.1. print........ ............... .............. ............... .............. ............... ............ ............... .............. .......... ...... ..... ...... .....46 10.3.2. echo..........................................................................................................................................................46 10.3.3. require()....................................................................................................................................................46 10.3.4. include()....................................................................................................................................................47

    11.Tr at a mie n t o de excepciones...................................................................................................................................4 11.1.Obj et ivo d el capitulo............................................................................................................................................49

    11.2.Errore sde compilacin.......................................................................................................................................49 11.3.Errore sde lgica..................................................................................................................................................49

    11.4.Errore sde ejecucin............................................................................................................................................49 11.4.1. Niveles d e error d eejecucin...................................................................................................................49 11.4.2. set_exception_handler..............................................................................................................................51

    12. Los formularios................................................................................................................................................... 12.1. C re acindel formulario......................................................................................................................................53

    12.2.Tr atam iento d el formulario................................................................................................................................53 12.2.1. import_request_variables.........................................................................................................................55

    13.U tili z aci n de COOKIES...................................................................................................................................... 13.1. Qu son losCOOKIES?....................................................................................................................................56 13.2. C re acinde un COOKIE....................................................................................................................................56

    www.detodoprogramacion.com

  • 8/12/2019 Curso de programacion con PHP y MySQL Espaol

    5/76

    13.3. R ecup er acinde inf or maci nde un COOKIE...............................................................................................57 13.4.Borr ado d e un COOKIE.....................................................................................................................................58

    14.U tili z aci n de v ariable s de sesin...........................................................................................................................59 14.1. In iciode sesin......................................................................................................................................................59 14.2. D eclar acinde va ri ab le de sesin......................................................................................................................59 14.3. R ecup er ar el val or de un vari ab le de sesin....................................................................................................59

    14.4. In vali dar una sesin.............................................................................................................................................59

    15.V ariable s Predefinidas......................................................................................................................................... 15.1. V ari ab lesde servi dor :$_SERVER...................................................................................................................60

    15.2. V ari ab lesde ento rno: $_ENV............................................................................................................................60 15.3. Cook iesHTTP: $_COOKIE...............................................................................................................................60 15.4. V ari ab lesHTTP GET :$_GET..........................................................................................................................60 15.5.Vari ab lesHTTP PO ST :$_POST......................................................................................................................60 15.6. V ari ab lesde car gade arc hivosHTTP: $_FILES...........................................................................................60 15.7. V ari ab lesde peticin: $_REQUEST.................................................................................................................60

    15.8.Vari ab lesde sesin: $_SESSION.......................................................................................................................60

    15.9. V ari ab lesglobale s:$GLOBALS........................................................................................................................61 15.10.El mensaj e de err or previ o:$php_errormsg.................................................................................................61

    16.C onexi n a MySQL............................................................................................................................................. 16.1. Objetivo del capitulo............................................................................................................................................62 16.2. Driver ODBC........................................................................................................................................................62 16.3. Driver PHP............................................................................................................................................................62

    16.4. Conexin................................................................................................................................................................62 16.5. Ejecucin de instrucciones SQL........................................................................................................................62

    16.6. consultas preparadas...........................................................................................................................................63 16.7.Llamado aprocedimientos..................................................................................................................................64

    16.8.Recup er acinde fotos enlabas e de datos........................................................................................................65

    17. Au te n ticaci n del usuario....................................................................................................................................... 17.1. Aut ent if icaci n HTTP conPHP.........................................................................................................................67

    17.1.1. Cont r old e acce so a los r ecursos web.......................................................................................................67 17.1.2. Ver if icaci n d e la i nfor maci n d elusuario..............................................................................................67 17.1.3. Rec uper acin d e la infor maci n d elusuario............................................................................................68

    17.2. Aut ent icaci n man e jada p or laaplicacin.......................................................................................................68

    18. Ejercicios........................................................................................................................................................... 19. E squem a de l a base de datos.......................................................................................................................... ...... ..73

    www.detodoprogramacion.com

  • 8/12/2019 Curso de programacion con PHP y MySQL Espaol

    6/76

    2. I n t r od u cc in a l c u r so 2.1. O b j e t i vo d e e ste c u rso En est e curso vamos a ver el len gua j e PHP y como conectarse a una ba se de da tos de t ipo MySQ L dedesde PHP .

    2.2. Ma n u a l d e l a l u m n o Este manu a l del a lumno es una ayuda para el a lumno, para t enga un recuerdo del curso. Estemanu a l con t ien e un resumen de las ma ter ias que se van a es tudiar duran t e el curso, pero el a lumnodeber a de tomar n otas persona les para comp let as es t e manu a l .

    En el CD de curso vien e tambien la documen tacin of icia l de PHP y de MySQ L en f orma to H T ML(deba j o la carpet a 'documen taci on '). Est a documen t aci n comp let a es t e manu a l .

    Este manu a l del u suar io vien e tambien en f orma t o PDF en el CD del curso.

    2.3. R eq u i si t o s p a ra a t e n d e r a este c u rso El conocimien t o del len gua j e H T ML es requer ido para poder seguir es t e curso.

    www.detodoprogramacion.com

  • 8/12/2019 Curso de programacion con PHP y MySQL Espaol

    7/76

    3. I n t r od u cc in a l P H P 3.1. Q ue e s e l P H P ? El PHP es un len gua j e de programaci n u t ili zado para crea r pginas web dinmicas .

    El PHP n eces i ta que un servidor web con capacidad PHP sea insta lado y f un cionando para podere j ecu tar las pginas PHP .

    El servidor va a compil ar el cdigo PHP y t ra tarlo en t iempo rea l , con la inf ormaci n vin ien do delcli en te web, para regresar le una pagina web adaptada , en t iempo rea l .

    El servidor t iene tambin capacidad de segu ir el camino de un u suar io, as cmo de iden t if icarlo.

    3.2. P o r q u u t i l i za r a m o s e l P H P ? El PHP se neces i ta cuando la pagina web t iene que adaptarse en f un cin del u suario, y cuando seneces i ta guardar va lores de ses in del u suario.

    Existen ot ros len gua j e que permi t en eso, como el ASP o el J SP, pero el PHP t iene como aven ta j e quees un len gua j e f cil a a pren der . Los servidores PHP (como los servidores J SP) ex isten para varioss istemas opera t ivos , en tre ot ros Windows, Linu x, y Un ix.

    El PHP es un es tndar de programacin I n t ernet .

    3.3. Na ve g a d ores w eb Si los navegadores prueba n todos de poder a pli car a l mxi mo las recomen daciones del H T ML 4.0existen cier t as opci ones , a den t ro o afuera del HML es tndar que slo ciert os navegadores soportan.

    T amb

    in, un m

    ismo cd

    igo no aparecer s

    iempre

    igua

    l en un n avegador e en ot ro.

    El PHP no est li gado directamen te con los navegadores , pero el H T ML que gen eraran si . As que uncdigo generado p odr a f un cionar bien en un n avegador, y dar un resu l tado dif eren te en ot ro.

    En est e curso, u t ili zaremos el n avegador Firef ox de Mozill a .

    www.detodoprogramacion.com

  • 8/12/2019 Curso de programacion con PHP y MySQL Espaol

    8/76

    4. El pr ot oc olo H TT P El prot ocolo HTTP (Hyper T ext T ransport P rotocol ) es un prot ocolo que def ine en deta ll e cmo uncli en te y un servidor deben comun icar en t re ell os . El modelo de comun icaci n HTTP es a la base delweb. El prot ocolo se apli ca a cua lqu ier servidor y cli en te web. Vamos a examinar los det a ll es msimportan t e del prot ocolo H TT P .

    4.1. M od elo d e c o n s u l t a / respuesta H TT P El HTTP y los prot ocol os exten didos ba sados sobre el u t ili zan un modelo de comun icaci n s imple,pero poderoso.

    De manera t pica , un cli en te en v a una consu l ta para un recurso a un servidor, y el servidor con tes t auna respues t a que corr esponde a l recurso pregun tado (o con tes ta con un men sa j e de er ror). El recursopuede ser una pgina H T ML, o una apli caci n que con tes ta con un con ten ido dinmico.

    Este modelo s imple impli ca tres cosas que Usted t ien e que ser concien t e:1. El prot ocolo HTTP es un protocolo s in es tado. Es decir que el servidor no guarda n ingn

    inf ormacin acerca del cli en te depuse de hab er le con tes tado, y por eso no puede reconocer quevarias consu l tas de un mismo cli en te pueden ser relacionadas.

    2. La apli caci n web no puede en t regar una respues ta inmed ia to, como en a pli caciones loca les .La velocidad depende del ancho de banda dispon ible y de la carga del servidor.

    3. No hay nada en el protocolo que indica a l servidor como la consu l t a le ha ll egado, as que elservidor no puede dist ingu ir dif eren te mt odos de consu l ta . P or ejemplo, en servidor no puededist ingu ir una consu l ta generada p or un cli c en un en lace del u so del bot n 'at rs ' delnavegador. T ambin, como el HTTP es s in es tado, no se puede a den t ro del HTTP ll amar a lapgina an ter ior.

    4.2. D e t a l l e s d e una c o n s u l t a Existen dos mtodos de consu l ta : GE T y POST . GE T es la ms u t ili zada , y la que se uso por def ect o.

    E j emp lo de una consu l ta :GET / i ndex. ht ml HTTP/ 1. 0Host : www. gef i onsof t ware. comUser - Agent : Mozi l l a/ 4. 5 [en] ( Wi nNT; I )Accept : i mage/ gi f , i mage/ j peg, i mage/ pj peg, i mage/ png, * / * Accept - l anguage : enAccept - charset : i so- 8859- 1, *, ut f - 8

    La pr imera l nea especi f ica que se usa el mt odo GE T y se pregun ta para regresar el recurso /index.h tml u t ili zando el prot ocolo H TT P /1.0. Las ot ras l nea s proveen t tu los con in f ormaci nadiciona l a l servidor para cumpli r con la consu l ta .

    www.detodoprogramacion.com

    http://www.gefionsoftware.com/http://www.gefionsoftware.com/
  • 8/12/2019 Curso de programacion con PHP y MySQL Espaol

    9/76

    El t tu lo HOST dice a l servidor el nombre (hostname) u t ili zado en el URL. Un servidor puede t en ervarios nombres , y es t e inf ormaci n per mi t e dist ingu ir m l t iple servidores virtua les u t ili zando unmismo proceso web .

    El t tu lo User - Agent con t ien e inf ormacin sobre el t ipo de navegador u t ili zado para hacer la consu l ta .El servidor puede u t ili zar es te in f ormaci n para gen erar respues tas dif eren t es depen dien do delnavegador (I E, Net scape, WAP, PDA,... ).

    Los t tu los Accept proveen inf ormacin sobre el idioma y el f orma t o de arch ivo que el navegadoracep t a .

    4.3. D e t a l l e s d e resp u esta El men sa j e de la respues t a parece a l de la consu l ta . El con t ien e t res partes : una l nea de es tado, un ost tu los de respues ta , y el cuerpo de la respues ta .

    E j emp lo de respues ta :HTTP/ 1. 0 200 OKLast - Modi f i ed: Mon, 19 Dec 2004 20: 21: 42 GMT

    Dat e: Tue, 12 J ul 2005 13: 12: 10 GMTSt atus: 200Cont ent - Type: t ext/ ht mlSer vl et - Engi ne: Tomcat Web Ser ver/ 3. 2 Cont ent - Lengt h: 59

    Hel l o Wor l d!

    La l nea de es tado emp ieza con el nombre del prot ocol o, segu ido por el cdigo de resu l tado y un abreva descripcin del cdigo de resu l tado. Aqu el cdigo de resu l t ado es 200, que s ign if ica que sa li con xi to.

    El men sa j e de respues t a t iene t tulos, como el de consu l ta . En es t e e j emp lo:

    El t tu lo Last - Modi f i ed da la f echa y h ora de cuando el recurso fue modif icado por l t i ma vez. Elcli en te puede u t ili zar esta inf ormacin para marcar la pgina el su cach, y ped ir en el f ut urosolamen t e las que f ueron modif icadas .

    El t tu lo Cont ent - Type dice a l navegador que t ipo de da tos con t ien e el cuerpo de la respues ta .

    El t tu lo Cont ent - Length dice a l navegador el t amao del cuerpo de la respues ta .

    Una l nea vac a sepa ra los t tu los del cuerpo de la respues ta . El cuerpo de la respues ta con t ien e elcdigo que ser en seado en el navegador. Aqu una simple pgina H T ML.

    El cuerpo puede con t en er pginas H T ML ms compli cadas, u otro t ipo de con t en ido (imagen , son ido,arch ivo compr i mido,... ). El cuerpo puede tambin con ten er cdigo que va gen erar ot ras consu l tas a lservidor, como la insercin de una i magen .

    www.detodoprogramacion.com

  • 8/12/2019 Curso de programacion con PHP y MySQL Espaol

    10/76

    I n t e r a c c i n e n t r e u n c li e n t e y u n s e r v i d o r w e b

    4.4. Pa r m e t ro s d e c o n su l t a Se pueden pasar parmet ros de consu l ta a den t ro del URL. Por eso, despus del n ombre de la pgina ,hay que men cionar un pun t o de pregun ta '?' y uno a varios parmet ros depa rados por '&', con elnombre del parmet ro, el s igno '=', y el va lor del parmet ro.

    Veremos ejemplos u t ili zando los f ormu lar ios .

    4.5. M t o d o s d e c o n s u l t a Y a hemos visto el u so del mtodo GE T . T ambin ex iste el mtodo POST . La di f eren cia en tre los dos es que el mtodo GE T pasa los parmet ros a den t ro del URL, as que se puede guardar f cil men te ensu li sta de marcadores. T ambin, en n avegador sab e que es te mt odo no puede daar el servidor, asacep t a de somet er la consu l t a nu evamen te (ref resca) s in a ler ta .

    El mt odo POST , en vez de p asar los parmet ros en el URL, les pasa a den t ro del cuerpo de laconsu l ta . Eso permi t e en viar consu l ta de tamao ms grande que 2000 caracteres , y s in que losparmet ros aparecen en el URL.

    Como los parmet ros estn guardados a den t ro del cuerpo de la consu l t a , la consu l ta no puede serguardada tan f cil men te en los marcadores , porque adems del URL, deber guardar el cuerpo de laconsu l ta .

    T ambin, cuando se proba de en viar de nuevo una en cues to POS T (ref resh) el n avegador gen era un aa lerto porque es t e accin puede gen erar acci ones pos iblemen te irr evers ible a l n ivel del servidor.

    www.detodoprogramacion.com

  • 8/12/2019 Curso de programacion con PHP y MySQL Espaol

    11/76

    E j emp lo de f ormu lar io:Cui dad: Pai s:

    E j emp lo de consu l ta POST generada p or el f ormu lario arr iba :POST / prueba. php HTTP/ 1. 0

    Host : www. busi nesssof t . com. niUser- Agent : Mozi l l a/ 4. 5 [ en] ( Wi nNT; I ) Accept : i mage/ gi f , i mage/ j peg, i mage/ pj peg, i mage/ png, * / *Accept - l anguage : enAccept - charset : i so- 8859- 1, *, ut f - 8cuidad=Managua&pais=Nicaragua

    www.detodoprogramacion.com

    http://www.businesssoft.com.ni/http://www.businesssoft.com.ni/
  • 8/12/2019 Curso de programacion con PHP y MySQL Espaol

    12/76

    5. I n st a la c i n d e l P H P 5.1. O b j e t i vo de l c a p i t u l o Al f in de es t e capi t u lo, el a lumno t endr un servidor PHP y las her ramien tas para desaroll ar en PHP insta lados en su compu tadora . Este es un requ is i to para poder cumpli r los ejercicios prct icos.

    5.2. C u a l vers i n ? Existen var ias vers iones de PHP. La t li ma vers in es la vers in 5, y vamos a u t ili zar esta vers in.

    5.3. In st a l a c i n d e P H P PHP provee un paquete de insta lacin para Windows. El paq uete de insta lacinproba ra de con f igurartamben el servidor web (II S/Apache2). Si f a ll a , u sted ten dr que con f irgurar el servidor webmanu a lmen te (documen taci n inclu ida en paquete de insta lacin).

    Ba j o Linu x ex isten dos pos ibili dades para insta lar PHP: comp il ar el packet e, o ut ili zar una paq ueteprecompil ado (si exist e para su vers in de Linu x).

    Si t io web de PHP: h tt p://www.php.net

    La vers in 10.1 de Su se Linu x trae la vers in 5 de PHP en sus paquetes dispon ibles en el CD /DVD.

    Hay que notar que PHP no puede f un ccionar sol o, si no que el t ien e que f un cionar con un servidor Web, como Apache or II S. En es t e curso vamos a u t ili zar PHP 5 con Apache2.

    Vamos a insta larlos u t ili zando Y AST , el progarama de inst a lacin y con f iguracin de Linu x. Hay quebuscar sobre PHP y seleccionar el conect or apache2-modphp5, php5, php5- mysqli , php5- mbst r ing, y

    php-zli

    b. Los dos ltimos estan u t

    ilizados por el s

    itio web phpMyAdm

    in, que perm

    it e manejar

    la ba sede da t os MySQ L.

    www.detodoprogramacion.com

    http://www.php.net/http://www.php.net/http://www.php.net/http://www.php.net/http://www.php.net/http://www.php.net/http://www.php.net/http://www.php.net/http://www.php.net/http://www.php.net/http://www.php.net/http://www.php.net/http://www.php.net/http://www.php.net/
  • 8/12/2019 Curso de programacion con PHP y MySQL Espaol

    13/76

    5.4. In st a l a c i n d e E c l i p se y d e l p l u g i n p a r a P H P Para disear las pginas PHP, vamos a u t ili zar la her ramien ta Ecli pse vers in 3.2, con el plugin para PHP .

    Estos programas son li bres y gra tu i t os, y f un cionan ba j o Windows como ba j os Linu x.

    Para insta lar Ecli pe vamos a ab rir una ven tana de consol a y ponernos como Root (su).

    P rimero, Ecli pse vers in 3.2 n eces i ta J ava vers in 1.5 o arr iba . Su el J ava 1.5 no es t insta lado hayque insta larlo pri mero:De desde el CD rom:rpm - i v j dk- 1_5_0_07- l i nux- i 586. rpm

    Ahora el J ava esta dispon ible en en s ist ema ba j o /usr / j ava / j dk1.5.0_07 pero el J ava por def ect o estodavia la vers ion 1.4.2 que ven ia con Su se. Se puede veri f icar ejecutando j ava - ver si on

    Para que la vers ion por def ecto sea la vers ion 1.5 hay que cambiar a lgun os en laces deba j o de /etc / al t e rnat i ves . Para eso, ejecut a desde el CD ' . modi f ySuseJ DK15. sh' . Si sa le un er ror de quea lgun arch ivo no ex iste, ignora la .

    Ahora podemos insta lar Ecli pse y sus plugins:Como root , vamos a copiar el arch ivo de insta lacin de Ecli pse y luego decompri mir lo.De desde el CD rom:cp ecl i pse- SDK- 3. 2- l i nux-gtk. t ar. gz / optcd / optt ar - xvf ecl i pse- SDK- 3. 2- l i nux- gt k. t ar. gz cd / medi a/ PHPcp net . sourcef orge. phpecl i pse_1. 1. 8. bi n. di st . z i p / opt / ecl i pse cd /opt / ecl i pseunzi p - o net . sourceforge. phpecl i pse_1. 1. 8. bi n. di st . zi p cd /opt / ecl i psechgr p user s - R *

    Vamos a crea r la carpet a que ut ili zaremos con Ecli pse. md / wor kspacechmod 777 - R / wor kspace/

    Vamos a copiar el arch ivo de inst a lacin de Ecli pse y luego descompr imir lo.cp Ecl i pse. desktop / opt / kde3/ shar e/ appl nk/ Devel opmentcp Ecl i pse. desktop / usr/ share/ appl i cat i ons

    Ahora Ecli pse esta en el menu de apli caciones (y de desarr oll o).

    5.4.1. I n i c i a liza c in d e l p lu gi n p a r a P H P Para poder manejar PHP de desde Ecli pse, hay que conf igurar el plugin.

    Deba j o del menu 'Window', eleg ir 'P ref eren ces ' y el ob j eto P HP ecli pse Web Developmen t . Sel eccionar PHP externa l tools y corr eg ir el camino hacia PHP. En nu es t ro caso /usr/bin /php5.

    5.4.2. C on f igu r a c in de Apache Para que Apache lea las pginas que crea mos en Ecli pse, ten emos que con f igurar Apache.

    Hay que ab rir el arch ivo / et c/ apache2/ ht t pd. conf y a l f ina l ad j un tar las l nea s s igu ien tes :

    NameVi r t ual Host *: 80########## Apache por def ec t o ##########

    Ser ver Name l ocal host

    www.detodoprogramacion.com

  • 8/12/2019 Curso de programacion con PHP y MySQL Espaol

    14/76

    Ser ver Admi n cedr i [email protected] uci onj ava. com

    Al i asMat ch / manual ( ?: / ( ?: de| en| es| f r | j a| ko| r u) ) ?( / . *) ?$ "/ usr/ share/ apache2/ manual $1"

    Opt i ons I ndexesAl l owOverr i de NoneOr der al l ow, denyAl l ow f romal l

    Set Handl er t ype- mapSet EnvI f Request_URI / manual / ( de| en| es| f r | j a| ko| r u) / pr efer - l anguage=$1

    Redi r ect Mat ch 301 / manual ( ?: / ( de| en| es| f r | j a| ko| r u) ) {2, }( / . *) ?$ / manual / $1$2

    ########## PHP ( Ecl i pse wor ks pace) ##########

    Document Root / wor kspaceSer ver Name al umnoX ( r empl aza X por el numer o de su maqui na )Ser ver Admi n cedr i [email protected] uci onj ava. com

    Al l owOverr i de NoneOr der al l ow, denyAl l ow f romal l

    Ahora t enemos dos s i t ios web en nues t ra mq u ino: htt p:// loca lhost que apun ta a l si t io Apache por dedef ect o, y h tt p://a lumnoX que apun tara a la carpet a de Ecli pse (err or 403 / ac ceso prohibido pordef ect o).

    5.5. In st a l a c i n d e M y S Q L En est e curso vamos a u t ili zar la ba se de da tos MySQ L, en su versin 5.0.27. Por eso la vamos ainsta lar ya .

    Para insta lar MySQ L vamos pr imero a en t rar como el u suar io Root (o usar su).

    Luego ab ri mos una ven t ana de consola , in t roducemos el CD del curso, y vamos a insta lar la vers ion

    de MySQ L que es taen el CD lanzando desde el CD la inst ruccin:rpm - i v MySQL- server- 5. 0. 27- 0. gl i bc23. i 386. rpm para insta lar el sevidor rpm - i v MySQL- cl i ent - 5. 0. 27- 0. gl i bc23. i 386. rpm para insta lar el cli en t e

    Eso insta ll o MySQ L ba j o /usr/bin.

    Vamos a crea r una carpet a /mysql con t en ien do los ata j os h acia programas de MySQ L.. cr eat eMySQLl i nks. sh

    Vamos ahora a cambiar la clave del u suar io root . Para cambiar la clave, en t ra en /mysql y e j ecu ta :/ usr/ bi n/ mysql admi n - u r oot password ' Sol PHP' . La nueva clave sera 'So lPHP '.

    Para ver if icar que MySQ L es ta bien insta lado y se in icia , e j ecu t a ' rcmysql restar t ' como Root .

    Y ahora vamos a crea r la ba se de da tos del curso:cd / medi a/ PHP/ mysql / mysql - u root - pSol J ava cr eat e database cur so;exi t ; / mysql / mysql - u r oot - pSol J ava cur so < cur so. sql

    E insta lar un en torno de desarr oll o (en PHP!) para poder visua li zar la ba se de da tos:cp phpMyAdmi n. t ar . gz / workspacecd / wor kspacet ar - xvf phpMyAdmi n. t ar. gz

    www.detodoprogramacion.com

    mailto:[email protected]:[email protected]:[email protected]://localhost/http://localhost/http://localhost/http://localhost/http://localhost/http://localhost/http://localhost/http://localhost/http://localhost/http://localhost/http://localhost/http://localhost/http://localhost/http://localhost/http://localhost/http://localhost/http://alumnox/http://alumnox/http://alumnox/http://alumnox/http://alumnox/http://alumnox/http://alumnox/http://alumnox/http://alumnox/http://alumnox/http://alumnox/http://alumnox/http://alumnox/http://alumnox/http://alumnox/http://localhost/mailto:[email protected]:[email protected]:[email protected]
  • 8/12/2019 Curso de programacion con PHP y MySQL Espaol

    15/76

    6. P r ime r a p g in a P H P 6.1. O b j e t i vo de l c a p i t u l o Al f in de es t e capi t u lo, el a lumno har crea do y ejecu tado su pr i mer cdigo PHP .

    Esta pri mera pgina servir de ba se para poner en prct ica y proba r la t eor a que vamos a ver en losprxi mos cap tu los.

    6.2. C re a c i n d e un nuevo p ro ye c t o w e b

    Al in iciar Ecli pse eleg imos el works pace '/works pace'.

    Para crea r nu es t ra pr imera pgina PHP, n eces i tamos crea r un si t io web. Por eso, en Ecli pse, crea mosun nuevo proyect o PHP, que ll amamos curso , con los va lores por def ect o.

    Al in iciar Ecli pse eleg imos el works pace '/works pace'.

    6.3. C re a c i n d e l a p g i n a d e n d i c e Para poder proba r el servi dor, vamos a crea r nu es tra pr imera pgina PHP .

    Por eso, hacemos un cli c derecho sobre la carpet a curso, y eleg imos new ... PHP Fil e , y en la ven tanaque se ab re, men cionamos en n ombre del arch ivo: index.php.

    T odas la pginas con ext en sin php (.php en minu scu la) sern ana li zadas por el servidor PHP yproducirn una pgina H T ML como sa li da .

    www.detodoprogramacion.com

  • 8/12/2019 Curso de programacion con PHP y MySQL Espaol

    16/76

    Para proba r si la pgina f un ciona , ten emos que ll en arla con a lgn cdigo PHP y /o H T ML. Por def ectola pagina index,php que hem os crea do ya es ta ab ier ta . M iramos que ya vien e con a lgn cdigo pre-hecho.

    Vamos a modif icar el cdigo de la manera s igu ien te, y lo guardamos:

    Est e es mi p&aacut e; gi na en PHP numer o .

    Luego miramos el resu l tado con un n avegador web en el domicili o: h tt p://a lumnoX/curso/ ohtt p://a lumnoX/curso/index.php

    As podemos ver que en la ba rr a de apli cacin como en la pri mera l nea de la pgina sa le en va lor dela variab le 't i t u lo'.

    1.1

    www.detodoprogramacion.com

    http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtdhttp://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtdhttp://alumnox/curso/http://alumnox/curso/http://alumnox/curso/http://alumnox/curso/http://alumnox/curso/http://alumnox/curso/http://alumnox/curso/http://alumnox/curso/http://alumnox/curso/http://alumnox/curso/http://alumnox/curso/http://alumnox/curso/http://alumnox/curso/http://alumnox/curso/http://alumnox/curso/http://alumnox/curso/http://alumnox/curso/http://alumnox/curso/http://alumnox/curso/http://alumnox/curso/http://alumnox/curso/index.phphttp://alumnox/curso/index.phphttp://alumnox/curso/index.phphttp://alumnox/curso/index.phphttp://alumnox/curso/index.phphttp://alumnox/curso/index.phphttp://alumnox/curso/index.phphttp://alumnox/curso/index.phphttp://alumnox/curso/index.phphttp://alumnox/curso/index.phphttp://alumnox/curso/index.phphttp://alumnox/curso/index.phphttp://alumnox/curso/index.phphttp://alumnox/curso/index.phphttp://alumnox/curso/index.phphttp://alumnox/curso/index.phphttp://alumnox/curso/index.phphttp://alumnox/curso/index.phphttp://alumnox/curso/index.phphttp://alumnox/curso/index.phphttp://alumnox/curso/index.phphttp://alumnox/curso/index.phphttp://alumnox/curso/index.phphttp://alumnox/curso/index.phphttp://alumnox/curso/index.phphttp://alumnox/curso/index.phphttp://alumnox/curso/index.phphttp://alumnox/curso/index.phphttp://alumnox/curso/index.phphttp://alumnox/curso/http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtdhttp://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd
  • 8/12/2019 Curso de programacion con PHP y MySQL Espaol

    17/76

    7. Ut i li za c in de los sc r i p t le t s 7.1. Q u son l o s sc ri p t l e t s? Los script let s son las et iquetas que per mi t en de delimi tar el cdigo PHP, que t ien e que ser ana li zadopor el servidor PHP, del cdigo H T ML, que t iene que ser en viado a l cli en te como ta l . As el servidorPHP combina el cdigo H T ML con el resu l t ado del cdigo PHP para obt en er la pgina H T ML que ser regresada a l cli en te y sera le da por el n avegador del cli en te.

    El PHP es la part e de la programacin que se ejecu t a a l n ivel del servidor, en con t ra del J avaScr i pt ,que se ejecu ta a l lado del cli en te.

    Para in t erpretar un arch ivo, el servidor PHP s mplemen t e lea el texto del arch ivo hasta queen cuen t ra uno de los carcteres especia les que delimi tan el in icio de cdigo PHP. El in t rpret e e j ecu ta en tonces todo el cdigo que en cuen t ra , h asta que en cuen t ra una et iquet a de f in de cdigo, que le dice a l in t rpret e que s iga ignorando el cdigo sigu ien te. Este mecan ismo permi t e embeber cdigoPHP den tro de H T ML: todo lo que est fuera de las et iquet as PHP se deja ta l como est, mien trasque el res to se in t erpret a como cdigo.

    Hay cua t ro con j un tos de et iquet as que pueden ser u sadas para den otar bloques de cdigo PHP. Deestas cua t ro, slo 2 ( y < scr ipt language="php">. . .< /scr ipt>) estn s iemp re dispon ibles ; elres to pueden ser con f iguradas en el f ichero de php.in i para ser o no acep tadas por el in t rpret e.

    Las et iquet as soportadas por PHP son:1. 2.

    Est o es una abrevi at ura de ""3.

    echo ( " muchos edi t ores ( como Front Page) noaceptan i nst r ucci ones de procesado") ;

    4.

    El mt odo pr i mero, , es el ms conven ien t e, ya que permi t e el u so de PHP en cdigoXML como XH T ML, y que es ta reconocida por los en tornos de desaroll o. Es el metodo que vamos aut ili zar en el curso.

    7.2. S ep a ra c i n d e i n st ru c c i o n e s Las sepa racin de inst rucciones se hace terminando cada declaracin con un pun to y coma .La et iquet a de f in de bloque (?>) i mpli ca el f in de la declaraci n, por lo tan to lo s igu ien te esequ iva len te:

    www.detodoprogramacion.com

  • 8/12/2019 Curso de programacion con PHP y MySQL Espaol

    18/76

    8. Ca r a c t e r st i c a s de l len gu a j e P H P 8.1. O b j e t i vo de l c a p i t u l o Al f in de es t e capi t u lo, el a lumno ser capaz de en ten der el uso de variab les y los t ipo de da tosut ili zados en PHP .

    El podr tambin poner comen tar ios en su cdigo, conver t ir da tos de un t ipo a ot ro, y h aceroperaci ones sobre var iab les .

    8.2. L i st a d e P a l a b r a s C l a ve Estas pa lab ras t ienen un s ign if icado especia l en PHP. Algun as de ellas represen tan cosas que lucencomo f un ciones , o a lgun as se ven como constan tes , y as suces ivamen te--pero no lo son, en rea li dad:son const rucciones del len gua j e. Usted no puede u sar n ingun a de las s igu ien tes pa lab ras comoconstan tes , n ombres de clase, nombres de f un ciones o mtodos. Usarlas como nombres de var iab leses t bien , gen era lmen t e, pero puede conducir a con f us iones .

    L ist a de P a la b r a s Cla ve : and or xor FI LE excep t ion

    LI NE arr ay() as brea k case class const con t inu e declare def au l tdie() do echo() else elseifempty() en ddeclare en df or en df orea ch en di fen dswi tch en dwh il e eva l () exi t() ext en dsf or f orea ch f un ct ion globa l ifinclude() include_once() iss et () li st () newprin t () requ ire() requ ire_once() return () sta t icswi tch unset() u se var wh il e

    FUNC T I

    ON CLASS ME T

    HOD f ina

    l php _u ser _f

    ilt er in ter f ace implemen ts ext en ds publi c

    prot ected ab st ract clone trythrow priva t e ca tch th is

    8.3. S e n si b i l i d a d PHP es a veces sen s ible a las may scu las y las min scu las, a veces no. As $miVariab le es un avariab le di f eren te de $M iVar iab le pero f a lse o FALSE son igua les .

    8.4. Id e n t i f i c a d o re s

    Los iden t if icadores son los nombres que se dan para iden t if icar a las clases , f un ciones , var iab les ,constan tes o cua lqu iera et iqueta PHP .

    El n ombre de un iden t if icador t ien e que cumpli r con ciertas reg las:Debe ten er un o mas caracteres El pr imer carcter t iene que ser una let ra o el carcter _ (subrayado).Las let ras que pueden ser u t ili zadas despus del pr imer carcter son cua lqu ier n mero delet ras , nmeros y rayas. Como expres in regu lar se podr a expresar como: '[a-zA-Z _\ x 7f -\ x ff ][a-zA-Z0-9_\ x7f -\ x ff ]*'

    www.detodoprogramacion.com

  • 8/12/2019 Curso de programacion con PHP y MySQL Espaol

    19/76

    8.5. D ec l a ra c i n d e va ri a b l e s Las var iab les permi t en a lmacen ar da tos de en trada , de sa li da , o in termed ios.

    En PHP las var iab les se represen t an como un s igno de dlar segu ido por el nombre de la var iab le. Elnombre de la variab le es sen s ible a min scu las y mayscu las.

    La s in taxis b s ica de declaraci n de var iab le es:$ = ;$mi Numer o=1;

    PHP4 y arr iba of rece ot ra f orma de as ignar va lores a las var iab les : as ignar por ref eren cia . Estosign if ica que la nueva var iab le si mplemen te ref eren cia (en ot ras pa lab ras, "se convier t e en un a li asde" "apun t a a") la variab le or igina l . Los cambi os a la nueva var iab le af ectan a la or igina l , yviceversa . Esto tambin s ign if ica que no se produce una copia de va lores ; por tan to, la as ignacinocurr e ms rpidamen te. De cua lqu ier f orma , cua lqu ier incremen to de velocidad se notar slo en losbucles cr t icos cuando se asignen grandes ma t r ices u ob j etos .

    Para as ignar por ref eren cia , s i mplemen te se an tepone un s igno "&" a l comien zo de la var iab le cuyova lor se est as ignando (la var iab le fuente). Por e j emp l o, el s igu ien te t rozo de cdigo produce lasa li da 'Mi nombre es Bob' dos veces :

    Algo importan t e a t ener en cuen ta es que slo las variab les con nombre pueden ser asignadas porref eren cia .

    8.6. T i p o s si m p l e s ( o p ri m i t i vo s) PHP soporta ocho t ipos primi t ivos.

    Cua tro t ipos esca lares : boolea n in t eger f loa t (n mero de pun to-f lotan te, tambin conocido como 'double') st ring

    Dos t ipos compues tos: arr ay ob j ect

    www.detodoprogramacion.com

  • 8/12/2019 Curso de programacion con PHP y MySQL Espaol

    20/76

    Y f ina l men te dos t ipos especia les : resource NULL

    El t ipo de una variab le usua l men te no es declarado por el programador; en cambio, es decidido ent iempo de compil aci n por PHP depen dien do del con texto en el que es u sado la var iab le.

    8.6.1. B oole

    a n Este es el t ipo ms s imple. Un b oolean expresa un va lor de verdad. Puede ser TRUE or FALSE .

    8.6.1.1. S in t a xis Para especi f icar un li tera l booleano, use a lgun a de las pa lab ras clave TRUE o FALSE . Amba s soninsen s ibles a mayscu las y min scu las .

    Usua l men te se usa a lgn t ipo de operador que devuelve un va lor boolea n, y luego ste es pasado a

    una es tructura de con t rol .

    8.6.1.2. Conve r si n a boo lea n o Para conver t ir expl ci ta men t e un va lor a boolea n, u se el moldeamien to (bool) o (boolean). Si nemba rgo, en la mayor a de casos no es n ecesar io usar el moldeamien to, ya que un va lor serconver t ido au tom t icamen te si un operador, f un cin o es t ructura de con trol requiere un argumen tot ipo boolea n.

    Cuando se rea li zan conver siones a b oolea n, los s igu ien tes va lores son considerados FALSE : el boolean FALSE mismo el in t eger 0 (cero) el f loa t 0.0 (cero) el va lor str ing vac o, y el string "0" un arr ay con cero el emen tos un ob j ect con cero var iab les miembro (slo en PHP 4) el t ipo especia l NULL (incluyen do variab les no def in idas)

    Cua lqu ier otro va lor es cons iderado TRUE (incluyen do cua lqu ier resource).

    E j emp l o:

  • 8/12/2019 Curso de programacion con PHP y MySQL Espaol

    21/76

    8.6.2. E n t e r os Un in t eger es un n mero del con j un to Z = {..., -2, -1, 0, 1, 2, ...}.

    8.6.2.1. S in t a xis Los en teros pueden ser especi f icados en n otacin decima l (ba se-10 ), h exadeci ma l (ba se-16 ) u octa l (ba se-8), opciona l men t e preced idos por un signo (- o +).

    Si usa la notacin octa l , debe preceder el n mero con un 0 (cero), para usar la notaci n h exadecima l ,preceda el n mero con 0x.

    E j empl o:

    El tamao de un en tero es depen dien te de la pla taf orma , aunque un va lor mxi mo deaproxi madamen t e dos bill ones es el va lor u sua l (lo que es un va lor de 32 bi t s con s igno).

    8.6.2.2. D esb or d a m ie n t o de en t e r os Si especi f ica un n mero ms a ll de los l mi tes del t ipo in teger , ser in t erpret ado en su lugar como un f loa t . As imismo, si rea li za una operacin que resu l ta en un n mero ms a ll de los l mi t es del t ipoin teger , un f loa t es ret ornado en su lugar.

    No hay un operador de divis in de en teros en PHP. 1 /2 produce el f loa t 0.5. Puede moldear el va lor aun en tero para asegurarse de redondear lo hacia aba j o, o puede usar la f un cin roun d().

    8.6.2.3. C onve r si n a en t e r o Para conver t ir expl ci tamen te un va lor a in teger, u se a lgun o de los moldea mien t os (in t) o (in t eger ).

    Sin emba rgo, en

    la mayor

    a de casos no neces

    ita usar e

    l mo

    ldeam

    ien to, ya que un va

    lor serconver t ido au tom t icamen te si un operador, f un cin o es t ructura de con trol requiere un argumen to

    t ipo in teger. T ambin puede conver t ir un va lor a en tero con la f un cin in tva l ().

    Desde boo lea n s: FALSE producir 0 (cero), y TRUE producir 1 (un o).

    Desde n me r os de p un t o f lot a n t e : Cuando se rea li zan convers iones desde un f lotan t e a unen tero, el n mero ser redondea do hacia cero.

    www.detodoprogramacion.com

  • 8/12/2019 Curso de programacion con PHP y MySQL Espaol

    22/76

    Si el f lotan t e se en cuen tra ms a ll de los l mi tes del en tero (usua l men te +/- 2.15e+9 = 2 31), elresu l t ado es indef in ido, ya que el f lotan t e no t iene su f icien te precis in para dar un resu l tado en teroexacto. No se producir una adver t en cia , n i s iqu iera una n ot icia en es te caso!

    Aviso: Nun ca moldee una f raccin desconocida a in t eger, ya que es to en ocas iones produce resu l tadosinesperados.

    Desde cadenas: Vea Convers in de caden as a nmeros

    Desde ot r os t ip os: Aten cin: El comportamien to de conver t ir desde en tero no es def in ido para ot rost ipos. Act ua l men te, el comportamien to es el mismo que si el va lor fuera antes conver t ido a bool ea no.Sin emba rgo, no con f e en es te comportamien to, ya que puede ser modif icado s in aviso.

    8.6.3. N m e r os de p un t o f lot a n t e Los n meros de pun to f lot an t e (tambin conocidos como "f lotan tes", "dobl es" o "n meros rea les") pueden ser especif icados usando cua lqu iera de las s igu ien tes s in taxis:

    El tamao de un f lotan t e depende de la pla ta f orma , aunque un va lor comn cons ist e en un mximode ~1.8e308 con una preci s in de aproxi madamen t e 14 d gi tos deci ma les (lo que es un va lor de 64bi t s en f orma t o I EEE ).

    8.6.3.1. P r e c isi n d e l p un t o f lot a n t e Es ba stan t e comn que a lgun as f racci ones deci ma les s imples como 0.1 o 0.7 no puedan serconver t idas a su represen t acin binaria in t erna s in perder un poco de prec is in. Est o puede ll evar aresu l t ados con f usos: por ejemp l o, f loor((0.1+0.7 )*1 0) u sua lmen te devolver 7 en lugar del esperado 8ya que el resu l tado de la represen t acin in terna es en rea li dad a lgo como 7.9999999999....

    Est o se en cuen tra relacionado a l hecho de que es imposible expresar de f orma exacta a lgun asf racciones en n otacin decima l con un n mero f in i to de d gi tos. Por e j emp l o, 1 /3 en f orma deci ma l seconvier t e en 0.3333333. . ..

    As que nunca con f e en resu l tados de nmeros f lot an t es hasta el l t i mo d gi to, y nun ca comparen meros de pun t o f lotan t e para conocer si son equ iva len tes . Si rea l men te neces i ta una mej orprecisin, es buena idea que use las f un ciones ma t em t icas de precis in arbi t rar ia o las f un cionesgmp en su lugar.

    8.6.3.2. C onve r si n a f lot a n t e

    Para ms inf ormacin sobre cundo y cmo son conver t idas las caden as a f lotan t es , vea la seccint i tu lada Convers in de caden as a nmeros . Para va lores de otros t ipos , la convers in es la misma quesi el va lor hu biese s ido conver t ido a en tero y luego a f lotan te. Vea la seccin Convers in a en tero params inf ormaci n. A part ir de PHP 5, una n ot icia es gen erada si in t en ta conver t ir un ob j et o a f lotan te.

    8.6.4. Cadenas Un va lor str ing es una ser ie de caracteres . En PHP, un caract er es lo mismo que un byt e, es decir,hay ex actamen te 256 t ipos de caracteres di f eren t es . Esto impli ca tambin que PHP no t ien e soport ena t ivo de Un icode.

    www.detodoprogramacion.com

  • 8/12/2019 Curso de programacion con PHP y MySQL Espaol

    23/76

    8.6.4.1. S in t a xis Un li t era l de cadena puede especi f icarse en tres f ormas dif eren tes .

    comill as si mples comill as dobl es sin taxis heredoc

    8.6.4.2. C om il la s sim p les

    La f orma ms s i mple de especi f icar una cadena sen cill a es rodea r la de comill as s imples (el caract er ').

    Para especi f icar una comill a sen cill a li tera l , n eces i ta escaparla con una ba rr a invert ida (\ ), como enmuchos ot ros len gua j es . Si una ba rr a invert ida neces i ta aparecer antes de una comill a sen cill a o a lf ina l de la caden a , n eces i tar doblar la . Note que si in t en ta escapar cua lqu ier ot ro caracter , la ba rr ainver t ida ser impresa tambin! De modo que, por lo gen era l , no hay n eces idad de escapar la ba rr ainver t ida misma .

    E j empl o:

  • 8/12/2019 Curso de programacion con PHP y MySQL Espaol

    24/76

    Nuevamen te, si in t en ta escapar cua lqu ier otro caracter , la ba rr a inver t ida ser i mpresa tambin!Antes de PHP 5.1.1, la ba rr a inver t ida en \ {$var}no ven a i mpr imindose.

    Pero la caracter st ica ms import an t e de las caden as en tre comill as dobles es el hecho de que losnombres de var iab les sern expandidos .

    8.6.4.4. He r ed oc

    Ot ra f orma de delim

    itar caden as es med

    ian t e el u so de

    la s

    in tax

    is heredoc ("

  • 8/12/2019 Curso de programacion con PHP y MySQL Espaol

    25/76

    f unct i on foo( ){

    $th i s ->f oo = ' Foo' ;$t hi s- >bar = arr ay( ' Bar1 ' , ' Bar2 ' , ' Bar3 ' ) ;

    }}

    $f oo = new f oo() ;$nombre = ' Mi Nombre' ;

    echo

    8.6.4.5. P r oc esam ie n t o de va r ia b les Cuando una cadena es especi f icada en comill as dobles o a l in ter ior de un bloque heredoc, lasvariab les son in t erpretadas en su in ter ior.

    Existen dos t ipos de sin t axis: una s i mple y una compleja . La s in taxis s i mple es la ms comn yconven ien te. Esta of rece una f orma de in t erpretar una var iab le, un va lor arr ay, o una propieda d deun ob j ect .

    La s in taxis compleja fue in t roducida en PHP 4, y puede reconocer se por las ll aves que rodea n laexpres in.

    S i n t a x i s s i m p l e

    Si un s igno de dlar ($) es en con t rado, el ana li zador s in tct ico tomar ambiciosamen te tan toslexemas como le sea pos ible para f ormar un n ombre de var iab le v li do. Rodee el n ombre de lavariab le de ll aves si desea especi f icar expl ci tamen t e el f ina l del n ombre.

    Para cua lqu ier cosa ms sof ist icada , deber a usarse la sin taxis comp leja .

    S i n t a x i s c o m p l e j a ( ll a v e s )

    Est a no es ll amada compl eja porque la s in taxis sea compleja , s ino porque es pos ible inclu irexpres iones comp lejas de esta f orma .

    De hecho, de es ta f orma puede inclu ir cua lqu ier va lor que sea part e del espacio de nombres a l i n ter ior de caden as. Si mplemen te escriba la expres in en la misma f orma que lo har a si se en con t rara por fuera de una caden a , y luego la ubica en tre {y }. Y a que no es posible escapar '{', es ta sin t axis ser reconocida n icamen te cuando el caracter $ se en cuen tra inmed ia tamen t e despus de {. (Use "{\ $"para obt en er una secuen cia li t era l "{$"). Algun os ejempl os para aclarar el asun to:

  • 8/12/2019 Curso de programacion con PHP y MySQL Espaol

    26/76

    / / Funci ona, i mpr i me: Est o es f ant &aacut e; st i coecho "Est o es {$geni al }" ;echo "Est o es ${geni al }";

    / / Funci onaecho "Est o f unci ona: {$mat r i z[ 4] [ 3] }";

    / / Funci ona. Cuando se usan mat r i ces mul t i - di mensi onal es, use si empre/ / l l aves al r ededor de l as mat r i ces al i nt eri or de cadenas echo "Est o funci ona: {$mat r i z[ ' f oo' ] [ 3] }";

    ?>

    8.6.4.6. Acceso a cadenas y m od if ic a c in p or c a r a c t e r

    Los caracteres a l in ter ior de una cadena pueden ser consu l tados y mod if icados a l especif icar eldesplazamien to, comen zando en cero, del caracter deseado despus de la cadena en t re ll aves .

    Algun os e j empl os de caden as

    8.6.4.7. F un c io n es y op er a d or es t il es Las caden as pueden ser conca ten adas usando el operador '.' (pun to). Note que el operador '+' (adicin ) no f un ciona para es t e props i to.

    Existen ba stan tes f un ciones t il es para la modif icacin de caden as.

    Vea la seccin de f un ciones de cadena en la documen tacin en el CD del curso para consu l tarf un ciones de uso gen era l , o las f un ciones de expres iones regu lares para bsqueda s y reemp lazosavanzados (en dos sab ores : Per l y POSI X exten dido).

    Existen tambin f un ciones para caden as t ipo URL, y f un ciones para en cr iptar /descif rar cadenas (mcrypt y mhash).

    Fina lmen te, si aun no ha en con t rado lo que busca , vea t ambin las f un ciones de t ipo de caracter .

    8.6.4.8. C onve r si n a cadena

    Es pos ible conver t ir un va lor a una cadena u sando el moldeamien t o (st ring), o la f un cin st rva l (). Laconvers in a cadena se rea li za autom t icamen te para usted en el con texto de una expres in cuandose neces i ta una caden a . Est o ocurr e cuando usa las f un ciones echo() o pr in t(), o cuando compara el va lor de una variab le con una caden a . El con ten ido de las secciones de la documen tacin en el CD del curso sobre Ti pos y M an ipu laci n de Ti pos ayudan a aclarar es t e hecho.

    Un va lor boolean TRUE es conver t ido a la cadena "1", el va lor FALSE se represen t a como "" (un acadena vac a). De esta f orma , u sted puede conver t ir de ida y vuel ta en t re va lores bool ea nos y decaden a .

    www.detodoprogramacion.com

  • 8/12/2019 Curso de programacion con PHP y MySQL Espaol

    27/76

    Un n mero in teger o de pun to f lotan t e (f loa t) es conver t ido a una cadena que represen ta el n merocon sus d gi tos (incluyendo la part e del exponen t e para los n meros de pun to f lotan te).

    Las ma t r ices son s iemp re conver t idas a la cadena "Arr ay", de modo que no puede volcar loscon ten idos de un va lor arr ay con echo() o pr in t () para ver lo que se en cuen tra en su in t er ior. Para verun elemen to, u sted t endr a que hacer a lgo como echo $arr ['f oo']. Vea ms adelan t e a lgun os consejossobre el volcado/vista del con t en ido complet o.

    Los ob j et os son conver t idos siempre a la cadena "Ob j ect". Si qu is iera impri mir los va lores devariab les mi embro de un ob j ect para ef ect os de depuracin, lea los pargra f os sigu ien t es . Si quiereconocer el n ombre de clase del cua l un ob j eto dado es instancia , u se get _class (). A part ir de PHP 5, elmtodo t oSt r ing() es u sado si resu l ta apli cab le.

    Los recursos son s iemp re conver t idos a caden as con la es tructura "Resource id #1" en donde 1 es eln mero n ico del va lor resource as ignado por PHP duran t e t iempo de ejecucin. Si qu is iera obt en erel t ipo del recurso, u se get _ resource_type().

    NULL se convier te s iemp re a una cadena vac a .

    Como puede apreciar, el impri mir ma tr ices , ob j et os o recursos no le of rece inf ormaci n t il sobre losva lores mismos . Consu l t e las f un ciones prin t _ r() y var _dump() para conocer mejores f ormas deimpri mir va lores para depuracin.

    8.6.4.9. Conve r si n de cadenas a n m e r os Cuando una cadena es eva luada como un va lor nu mr ico, el va lor resu l tan t e y su t ipo sondeterminados como s igue.

    La cadena ser eva luada como un f loa t si con t ien e cua lqu ier caracter en tre '.', 'e', o 'E'. De ot ra f orma ,eva luar como un en tero.

    El va lor es dado por la porcin in icia l de la caden a . Si la cadena comien za con da tos nu mricosv li dos , stos sern el va lor usado. De lo con t rar io, el va lor ser 0 (cero). Un signo opci ona l escons iderado un da t o nu mr ico v li do, segu ido por uno o ms d gi tos (que pueden con t en er un pun todecima l ), segu idos por un exponen te opci ona l . El exponen te es una 'e' o 'E' segu ida de uno o msd gi tos.

    E j empl o:

    8.6.5. M a t r i c es Una ma t riz en PHP es en rea li dad un mapa orden ado. Un mapa es un t ipo de da tos que asociava lores con claves . Este t ipo es opt i mizado en var ias f ormas , de modo que puede u sar lo como unama t r iz rea l , o una li sta (vector), tab la asocia t iva (caso part icu lar de i mplemen taci n de un mapa),diccionar io, coleccin, pil a , cola y probab l emen t e ms . Y a que puede t ener ot ra ma t r iz PHP comova lor, es rea lmen t e f cil simu lar rboles .

    www.detodoprogramacion.com

  • 8/12/2019 Curso de programacion con PHP y MySQL Espaol

    28/76

    Una expli caci n sobre ta les es tructuras de da tos se en cuen tra por fuera del propsi to de es te manu a l ,pero en cont rar a l men os un ejemplo de cada uno de ellos .

    8.6.5.1. S in t a xis Especif icaci n con arr ay()

    Un arr ay puede ser crea do por la const ruccin de len gua j e arr ay(). sta toma un cier to n mero de

    parejas clave => va lor sepa radas con coma .arr ay( [clave =>] va lor

    , ...)

    // clave puede ser un in teger o str ing // va lor puede ser cua lqu ier va lor

    Una clave puede ser un in t eger o un st ring. Si una clave es la rep resen tacin es tndar de un in t eger ,ser in t erpretada como ta l (es decir, "8" ser in t erpret ado como 8, mien tras que "08" serin terpretado como "08"). Los va lores f lotan tes en clave sern t run cados a va lores t ipo in t eger. Noexisten t ipos dif eren t es para ma t rices indexadas y asocia t ivas en PHP; slo ex ist e un t ipo de ma t riz,el cua l puede con t en er ndices t ipo en tero o caden a .

    Un va lor puede ser de cua lqu ier t ipo en PHP .

    Si no especi f ica una clave para un va lor dado, en tonces es u sado el mxi mo de los ndices en teros, yla nueva clave ser ese va lor mximo + 1. Si especi f ica una clave que ya t iene un va lor as ignado, seva lor ser sobrescri t o.

    Al usar TRUE como clave, el va lor ser eva luado a l int eger 1. Al usar FALSE como clave, el va lorser eva luado a l in t eger 0. Al usar NULL como clave, el va lor ser eva luado a una cadena vac a . Eluso de una cadena vac a como clave crea r (o reemp lazar) una clave con la cadena vac a y su va lor;no es lo mismo que usar corchet es vac os.

    No es pos ible usar ma t rices u ob j et os como claves . Al hacer lo se producir una adver t en cia : I ll ega loff set type.

    8.6.5.2. C r ea c i n /m od if ic a c in con si n t a x is de c or c h et es c ua d r a d os Es pos ible modif icar una m a t r iz existen te a l def in ir va lores expl ci tamen te en ell a .

    www.detodoprogramacion.com

  • 8/12/2019 Curso de programacion con PHP y MySQL Espaol

    29/76

    Est o es pos ible a l as ignar va lores a la ma t riz a l mismo t iemp o que se espec if ica la clave en trecorchet es . T ambin es pos ible omi t ir la clave, agrega r una pareja vac a de corchet es ("[]") a l nombrede la variab le en ese caso.

    $mat ri z[cl ave] = val or;$mat r i z [ ] = val or ;/ / cl ave puede ser un i nt eger o str i ng / / val or puede ser cual qui er val or

    Si $ ma t riz no existe aun, sta ser crea da . De modo que esta es tambin una f orma a l terna t iva deespeci f icar una m a t r iz. Para mod if icar un ciert o va lor, s impl emen te as igne un nuevo va lor a unelemen to especi f icado con su clave. Si desea remover una pareja clave/va lor, n eces i ta eli minarlamed ian t e unset().

    8.6.5.3. F un c io nes t il es Existe un buen n mero de f un ciones t il es para traba j ar con ma t r ices . Consu l t e la seccin f un cionesde ma t r ices .

    Nota : La f un cin unset() le permi te remover la def in icin de claves de una ma t riz. T en ga en cuen t aque la ma t riz NO es re-indexada . Si slo usa " ndices en teros comun es" (comenzando desde cero,incremen t ando en un o), puede consegu ir el ef ect o de re-indexacin u sando arr ay_ va lues() .

    La es tructura de con t rol f orea ch exist e espec f icamen t e para las ma t r ices . sta provee una m aneraf cil de recorr er una m a t riz.

    8.6.5.4. C onve r si n a m a t r iz Para cua lqu iera de los t ipos: in t eger, f loa t , st ring, bool ea n y resource, si convier t e un va lor a unarr ay, obt ien e una m a t riz con un elemen t o (con ndice 0), el cua l es el va lor esca lar con el que in ici.

    Si convier t e un ob j ect a una ma t riz, obt ien e las propieda des (var iab les mi embro) de ese ob j et o comolos elemen tos de la ma t r iz. Las claves son los nombres de las variab les mi embro.

    Si convier t e un va lor NULL a ma t r iz, obt ien e una m a t riz vac a .

    8.6.5.5. O r d en a m ie n t o de una m a t r iz Se u t ili za la f un cion 'sort ' sobre el arr eglo.

    www.detodoprogramacion.com

  • 8/12/2019 Curso de programacion con PHP y MySQL Espaol

    30/76

    E j empl o:

    8.6.5.6. M a t r ic es r e c u r siv a s y m u lt i - d im en sio n a les Dado que el va lor de una ma t r iz puede ser cua lqu ier cosa , tambin puede ser otra ma t r iz. De es taf orma es pos ible crea r ma t rices recurs ivas y mu l t i-dimen s iona les .

    E j emp l o:

    8.6.6. O b j e t os Existe la posibili dad de u t ili zar ob j et os y clases en PHP .

    En es t e curso no vamos ir en deta ll e sobre la programacin orien t ado ob j eto porque toma r ademasiado t iempo. Para ms deta ll e, ver la documen t aci n de PHP en el CD del curso.

    8.6.7. R e c u r so Un recurso es una var iab le especia l , que con t ien e una ref eren cia a un recurso externo. Los recursosson crea dos y u sados por f un ciones especia les . Vea la documen taci n PHP en el CD del curso para unli stado de todas estas f un ciones y los t ipos de recurso corr espondien tes .

    8.6.8. N U LL El va lor especia l NULL represen ta que una variab le no t iene va lor. NULL es el n ico va lor pos ibledel t ipo NULL .

    Una variab le es cons iderada como NULL s i se ha as ignado la constan t e NULL a la var iab le. no ha s ido def in ida con va lor a lgun o. ha s ido eli minada con unset ().

    www.detodoprogramacion.com

  • 8/12/2019 Curso de programacion con PHP y MySQL Espaol

    31/76

    8.6.8.1. S in t a xis Existe un solo va lor de t ipo NULL, y ese es la pa lab ra clave NULL , insen sible a mayscu las ymin scu las.

    8.7. C o n st a n t e s Una constan t e es un iden t if icador para expresar un va lor s i mple. Como el n ombre sugiere, es t e va lorno puede var iar duran t e la ejecucin del scr ipt . (Las constan tes especia les FI LE y LI NE sonuna excepcin a es to, ya que act ua lmen t e no lo soin). Una constan t e es sen s ible a mayscu las pordef ect o. Por conven cin, los iden t i f icadores de constan tes suelen dec lararse en may scu las

    El a lcanze de una constan t e es globa l , es decir, es pos ible acceder a ellas sin preocuparse por elmbi to de a lcance.

    8.7.1. S in t a x is

    Se puede d ef in ir una constan t e usando la f un cin def ine(). Una vez def in ida , no puede ser modif icadan i eliminada .

    So lo se puede def in ir como constan tes va lores esca lares (bool ea n, in t eger , f loat y str ing ).

    Para obt en er el va lor de una constan t e solo es n ecesario especi f icar su n ombre. A di f eren cia de lasvariab les , no se t iene que especi f icar el pref i j o $. T ambien se puede u t ili zar la f un cin constan t(),para obt en er el va lor de una constan te, en el caso de que queramos expresarla de f orma dinmicaUsa la f un cin get _def ined_constan t s() parar obt en er una li sta de todas las constan tes def in idas .

    Si u sas una constan t e todavia no def in ida , PHP asume que ests ref irindote a l n ombre de laconstan t e en s i . Se lanzar un aviso si es to sucede. Usa la f un cin def ined() para comproba r laexisten cia de dicha constan te.

    Est as son las dif eren cias en tre constan t es y variab les : Las constan tes no son preced idas por un s mbol o de dolar ($) Las con tan tes sol o pueden ser def in idas usando la f un cin () def ine , nun ca por simple

    as ignacin Las constan tes pueden ser def in idas y acced idas s in ten er en cuen ta las reg las de a lcanze del

    mbi to. Las constan tes no pueden ser redef in idas o eli minadas despues de es tab lecer se; y Las constan tes solo puede a lbergar va lores esca lares

    E j empl o: Def in ien do constan tes

    8.8. O p e ra d o re s Los operadores se u t ili zan para hacer operaci ones sobre las variab les . Permi ten combinar, modi f icar,o eva luar las variab les .

    www.detodoprogramacion.com

  • 8/12/2019 Curso de programacion con PHP y MySQL Espaol

    32/76

    8.8.1. P r in c ip a les op e r a d or es so b r e in t ege r y f loa t - Negacin (un i tario), res ta (binar io) ++ I ncremen to -- Decremen to = Asignacin== I gua ldad != Des igua ldad < M en os que = M ayor o igua l que > M ayor que + Su ma * Mu l t ipli cacin/ D ivisin% M odu l o

    Los operadores de incremen to (++) y decremen to (--) se pueden u t ili zar antes o despus de lavariab le, pegado a ella .

    Si se u t ili zan antes, la var iab le se incremen ta o decremen ta direct amen te. Si se u t ili za despus , lavariab le se incremen ta o decremen ta j usto despus de haber s ido u t ili zada . Se pueden u t ili zar concaden as t ambien , pero no t ien e ef ect o con bolea nos.

    E j emplo de declaracin:

    8.8.2. Op e r a d or es de Com p a r a c in Los operadores de comparacin, como su n ombre indica , le permi ten comparar dos va lores . Puede quetambin se en cuen tre in t eresado en consu l tar las tab las de comparacin de t ipos , ya que stasmues t ran ejemplos de varios t ipos de comparaciones relacionadas con t ipos .

    Operadores de Comparaci nE j emp l o Nombre Resu l tado

    $a == $ b I gua l TRUE si $a es igua l a $b .

    $a === $ b I dn t ico TRUE si $a es igua l a $b, y son del mismo t ipo.

    $a != $ b D if eren te TRUE si $a no es igua l a $b .

    www.detodoprogramacion.com

  • 8/12/2019 Curso de programacion con PHP y MySQL Espaol

    33/76

    Ti po del O perando 1 Ti po del Operando 2 Resu l t ado

    nu ll o str ing st ring Conver t ir NULL a "", comparaci n nu mrica o delxico

    bool o null cua lqu iera Conver t ir a b ool , FALSE < T RUE ob j ect ob j ect Las clases in t ernas pueden def in ir su propia

    comparaci n, clases dif eren tes son incomparab l es , lamisma clase - comparan propieda des en la mismaf orma que las ma t rices (PHP 4), PHP 5 t ien e su propiaexpli caci n

    string, resource onu mber

    st ring, resource onu mber

    T raducir las caden as y recursos a nmeros,ma t em t ica usua l

    arr ay arr ay Una ma t r iz con men os elemen tos es men or, si una clave del operando 1 no se en cuen tra en el operando 2en tonces las ma t r ices son incomparab l es , de ot ra f orma - comparar va lor por va lor (vea el s igu ien te e j emp lo)

    arr ay cua lqu iera arr ay es siemp re mayor

    ob j ect cua lqu iera ob j ect es s iempre mayor

    E j empl o Nombre Resu l tado

    $a $ b D if eren te TRUE si $a no es igua l a $b .

    $a !== $ b No idn t icos TRUE si $a no es igua l a $b, o si no son del mismo t i po.

    $a < $ b Men or que TRUE si $a es escrictamen te men or que $b.

    $a > $ b Mayor que TRUE si $a es es tr ictamen te mayor que $b.

    $a = $ b Mayor o igua l que TRUE si $a es mayor o igua l que $b.

    Si compara un en tero con una caden a , la cadena es conver t ida a un n mero. Si compara dos caden asnu mr icas , ell as son comparadas como en t eros . Estas reglas tambin se apli can a la sen ten cia swi tch.

    Para var ios t ipos , la comparacin se rea li za de acuerdo con la s igu ien t tab la (en orden ).

    Comparacin con Varios Ti pos

    E j empl o: T ranscr ipcin de la comparacin de ma t r ices es tndar

  • 8/12/2019 Curso de programacion con PHP y MySQL Espaol

    34/76

    r et ur n - 1; / / $op1 < $op2

    } el sei f ( count ( $op1) > count ( $op2) ) { r et ur n 1; / / $op1 > $op2

    }f oreach ( $op1 as $cl ave => $val ) {

    i f ( ! arr ay_key_exi st s( $cl ave, $op2) ) { r et urn nul l ; / / i ncomparabl e

    } el sei f ( $val < $op2[ $cl ave] ) { return - 1;

    } el sei f ( $val > $op2[ $cl ave] ) { r etur n 1;

    }} r etur n 0; / / $op1 == $op2

    }?>

    8.8.3. Op e r a d or es de L g i c a Los operadores lgicos son u sados para eva luar var ias comparaciones , combinando los posiblesva lores de es tas .Op e r a d or Nom b r e E j emp lo Devue lve c ie r t o cuando:

    && Y (7>2) && (22) and (22) | | (22) or (22) N iega el va lor de la expres in.

    8.8.4. Op e r a d or T e r na r io Ot ro operador condici ona l es el operador "?:" (o ternario).

    E j emp l o:. As ignacin de un va lor predeterminado

    La expres in (expr1) ? (expr2) : (expr3) eva la a expr2 si expr1 eva la a T RUE, y expr3 si expr1eva la a FALSE .

    Nota : Por f avor note que el operador t ernar io es una sen ten cia , y que no eva la a una var iab le, s inoa l resu l tado de una sen ten cia . Es i mportan t e sab er es to si se desea d evolver una variab le porref eren cia . La sen ten cia return $ var == 42 ? $a : $b; en una f un cin con retorno-por-ref eren cia nof un cionar por lo que se ha men ci onado y una adver ten cia es gen erada en vers iones poster iores dePHP .

    www.detodoprogramacion.com

  • 8/12/2019 Curso de programacion con PHP y MySQL Espaol

    35/76

    8.9. Ma n i p u l a c i n d e T i p o s PHP no requ iere (o soport a) la def in icin expl ci ta de t ipos en la declaracin de variab les ; el t ipo deuna variab le es determinado por el con texto en el que la var iab le es u sada . Lo que qu iere decir que s ias igna un va lor de cadena a la variab le $var, $ var se convier t e en una caden a . Si luego as igna unva lor en tero a $var, sta se convier t e en en tera .

    Un ejemp lo de la convers in au tom t ica de t ipos de PHP es el operador de adicin '+'. Si cua lqu ierade los operandos es un f lot an te, en tonces t odos los operandos son eva luados como f lotan tes , y elresu l t ado ser un f lotan t e. De otro modo, los operandos sern in t erpretados como en teros, y elresu l t ado ser tambin un en tero. Note que es t e NO modif ica los t ipos de los operandos mismos; eln ico cambio es t en la f orma como los operandos son eva luados.

    Si los dos l t i mos ejempl os lucen ext raos, consu l t e Conver sin de caden as a nmeros .

    Nota : El comportamien to de una convers in au tom t ica a ma t r iz no se en cuen t ra def in ido en elmomen t o.

    Y a que PHP (por razones h ist r icas) soport a el uso de ndices en caden as med ian t e desplazamien tosde pos ici n u sando la misma s in taxis que la indexaci n de ma t r ices , el e j emp lo an t er ior ll eva a unproblema : deber a $a conver t irse en una ma t r iz con un pr imer elemen to "f", o deber a "f" conver t irseen el pri mer caracter de la cadena $a ?

    Las ver siones recien tes de PHP in terpret an la segun da as ignacin como una iden t i f icacin dedesplazamien to de caden a , as que $a se convier te en "f", sin emba rgo el resu l tado de esta convers inau tom t ica debe cons idera rse indef in ido. PHP 4 in t rodu j o la nueva sin taxis de ll aves para acceder alos caract eres de una caden a , u se esta s in taxis en lugar de la que fue presen tada an t eriormen te:

    8.9.1. M old ea m ien t o de T ip os

    El moldea m

    ien to de t

    ipos en PHP f un c

    iona de f orma muy s

    im

    ilar a como ocurr e en C: el n ombre delt ipo deseado es escr i to en tre parn tes is antes de la var iab le que debe ser moldeada .

    Los moldeami on t os permi t idos son:

    (in t ), (in t eger ) - moldeami en t o a en tero (bool ), (boolea n) - moldeamien to a b oolea no (f loa t ), (double), (rea l ) - moldeamien to a f lotan t e

    www.detodoprogramacion.com

  • 8/12/2019 Curso de programacion con PHP y MySQL Espaol

    36/76

    (string) - moldea mien to a caden a (arr ay) - moldea mien to a ma t r iz (ob j ect ) - moldeamien to a ob j et o

    Note que las tab u laciones y los espacios son permi t idos a l in ter ior de los parn tes is , as que lassigu ien tes expres iones son f un ciona l men te equ iva len tes :

    Nota : En lugar de moldea r una var iab le a caden a , puede tambin rodea r la variab le de comill asdobles .

    8.9.2. P r e c ed en c ia de Op e r a d or es La preceden cia de un operador indica qu tan "cerca" se agrupan dos expres iones . Por ejemp lo, en laexpres in 1 + 5 * 3 , la respues ta es 16 y no 18 , ya que el operador de mu l t ipli cacin ("*") t ien e un amayor preceden cia que el operador de adicin ("+"). Los parn tes is pueden ser usados para marcar lapreceden cia , si resu l ta necesar io. Por ejemp lo: (1 + 5) * 3 eva la a 18 . Si la preceden cia de losoperadores es la misma , se u t ili za una asociacin de izqu ierda a derecha .

    La sigu ien te tab la li sta la preceden cia de los operadores , con aquellos de mayor preceden cia li stadosa l comien zo de la tab la . Los operadores en la misma l nea t ienen la misma preceden cia , en cuyo casosu asocia t ividad decide el orden para eva luar los .

    Preceden cia de Operadores :Aso c ia t iv id a d Op er a d or es I n f or m a c i n Ad ic io n a l

    no-asocia t ivo new newizqu ierda [ arr ay()

    no-asocia t ivos ++ -- incremen to/decremen to

    no-asocia t ivos ! ~ - (in t) (f loa t ) (str ing) (arr ay) (ob j ect ) @ t ipos izqu ierda * / % ari tmt ica izqu ierda + - . ari tmt ica , y caden a izqu ierda > manejo de bi t s

    no-asocia t ivos < >= comparaci n

    no-asocia t ivos == != === !== comparaci nizqu ierda & manejo de bi t s, y ref eren cias izqu ierda ^ manejo de bi t s izqu ierda | manejo de bi t s

    www.detodoprogramacion.com

  • 8/12/2019 Curso de programacion con PHP y MySQL Espaol

    37/76

    Aso c ia t iv id a d Op er a d or es I n f or m a c i n Ad ic io n a l izqu ierda && lgicos izqu ierda | | lgicos izqu ierda ? : ternar io

    derecha = += -= *= /= .= %= &= | = = = asignacinizqu

    ierda and

    lg

    icos

    izqu ierda xor lgicos izqu ierda or lgicos izqu ierda , varios usos

    E j emp l o: Asocia t ividad

    8.10. C o m e n t a ri o s En el cdigo PHP se pueden met er comen tar ios .

    Los comen tar ios de una sola l nea se s gna la con //o con '#'. Los comen tarios de una o var ias l nea sse s gna la con /* a l in icio, y */ a l f ina l .

    E j emp l os:/ * Es te

    es un coment ar i ode var i as l neas */

    i nt mi Nmer o2; # Est e es una muest r a de coment ar i o de una l nea i nt mi Nmero = 1; / / Est e es una muest r a de coment ari o de una l nea

    www.detodoprogramacion.com

  • 8/12/2019 Curso de programacion con PHP y MySQL Espaol

    38/76

    9. De c isi on es y bu c les 9.1. O b j e t i vo de l c a p i t u l o Al f in de es t e capi tu lo, el a lumno ser capaz de crea r esquema de d ecis iones en su cdigo, as comocrea r y manejar bucles .

    9.2. if ... e l se i f ...el se El i f se u t ili za para crea r esquema de d ecisiones . Se puede u t ili zar con el el se , pero es f acu l ta t ivo.

    El i f , que sign if ica si permi t e proba r una o varias condiciones. El resu l tado de cada condicinsiempre es si o no. Las condici ones s iempre estn en tre parn tes is.

    Despus del i f vien e la inst ruccin que ser rea li zada en caso que el resu l tado de la(s) condici n (es) sa le verdadero.

    El el se , que se puede traducir por s i no se cumplo , la inst ruccin que ser rea li zada en caso que elresu l t ado de la(s) condicin(es) del i f sa li f a lso.

    Si hay mas que una inst ruccin que ejecu t ar t ras el i f o el el se , hay que u t ili zar un bloque deinst rucciones , con t en ien do las instrucciones en t re {y }.

    Existe tambien la inst ruccin ' el s ei f ' que sign i f ica 's i no se cumpl o, si cumple ...' y se trat a como un'i f '.

    E j emp l o:

    9.3. S i n t a x i s Al t e rn a t i va d e E st ru c t u ra s d e C o n t ro l PHP of rece una s in t axis a l t en a t iva para a lgun a de sus es t ructuras de con t rol ; a sab er , if , wh il e, f or, yswi tch. En cada caso, la f orma b sica de la sin taxis a l t erna t iva es cambiar ab rir-ll ave por dos pun tos(:) y cerr ar-ll ave por en dif ;, en dwh il e;, en df or;, or en dswi tch;, respect ivamen te.

    A es i gual a 5

    En el ejemp lo de arr iba , el bloque H T ML "A es igua l 5" se an ida den t ro de una sen ten cia if escr i ta enla sin t axis a l t erna t iva . El bloque H T ML se most rar a solamen te si $a fuera igua l a 5.

    La s in taxis a l t erna t iva se apli ca a else y tambin a elseif . La sigu ien te es una es t ructura i f con elseify else en el f orm