OrdinadorsProgramació

Pràctica PHP: comparació de cadenes

PHP es centra en el bon maneig de la informació. La sintaxi de la llengua està representat conjunt totalment funcional de funcions de comparació, el processament de cadenes, operadors de comparació.

Qualsevol algoritme - una seqüència de decisions i accions. Però abans de prendre una decisió, es necessita alguna cosa per comparar-lo amb alguna cosa. Línia - el mecanisme de control d'algoritme de major capacitat, eficient i pràctic. Line - una variant de la presentació de les dades. Una de dades - aquest és el tema principal de "atenció" de qualsevol algoritme.

la lògica ordinària "comparació d'acció"

En general, la llengua tipatge dinàmic fa no hi ha diferències en les dades, com ara línia de comparació PHP i el nombre no és molt diferent. Nombre - que també és una cadena, quan conté només números, punts i no hi ha un sol personatge que no s'utilitza per representar nombres en qualsevol forma (notació matemàtica).

Si el nombre kontenkatsii combina automàticament amb la línia, sense preguntes i sense errors ocults, fins i tot si la funció GetType () dóna el 'nombre enter' o 'doble'.

No obstant això, hi ha una diferència entre l'ús de is_int () i is_numeric (). El primer dóna la veritat, només quan el paràmetre és un nombre enter, segon, quan qualsevol nombre o cadena numèrica (tipus de variable és 'cadena', però comprèn tots notació matemàtica proporcionat).

Aquest és un exemple senzill - un bon exemple de com un operadors de comparació de cadenes de PHP ( '==' '===' ... '='!) Pot presentar moltes sorpreses. Les variables poden canviar el seu tipus, que no sempre són números, però gairebé sempre es poden dur a la línia. En un cas extrem - que serà una cadena buida.

Amb base en l'anterior, una funció de comparació de cadenes PHP és més popular. Què és exactament per triar, per decidir el desenvolupador. Un munt d'opcions disponibles a les expressions regulars.

Els límits de la funcionalitat disponible

PHP-comparació de les dues files és bo "fer" strpos funció () - el més barat, els fidels i opció pràctica. Si el resultat del nombre de funció, llavors és clar que una cadena és igual a un altre o d'una part a una altra.

Radicalment oposat, sinó també absolutament l'enfocament correcte - l'ús d'expressions regulars.

Si la funció $ cResult = scCheckFileName ($ CSTR) dóna 'veritable', llavors la línia és el nom del fitxer vordovsky. Ell tindrà només una opció d'expansió '.docx' i no hi ha caràcters en el nom: només lletres, dígits i els caràcters '_', '-'.

La funció es pot convertir fàcilment a altres tipus d'arxius: $ cPtr = '/^([a-zA-Z...0-9\-\_]{4,239})\.(html|js|css|png|jpg | docx | txt) {1} $ / o '. Aquesta variant s'estén la línia d'exploració descarregable gamma (per exemple, s'aplica la comparació de cadenes PHP "per pujar arxius a un servidor, sense possibilitat d'error d'entrada") per html, js, css, ...

Utilitzant el strpos () i preg_match () - extrems. Ells no estan directament relacionats amb el tema del període de comparació. Però la pregunta de l'algoritme - és una qüestió d'usar una combinació d'estil, ús de totes les oportunitats per aconseguir un resultat fiable i correcta.

PHP funcional: comparació de cadenes

idioma Arsenal cadenes comparació - a, no només la funció de comparació pura, sinó també una combinació d'una cerca o substituir directament. No sempre actuar ha de coincidir amb la comparació, ja que aquest últim no condueix necessàriament a un canvi en qualsevol de les files. Sovint, vostè ha de triar una o altra branca de l'algoritme.

Variant normal de PHP: realitza la comparació de cadenes funció int strcmp (S1, S2).

El resultat de la funció:

  • 0 - línia són iguals;
  • -1 - la primera cadena és menor que la segona;
  • 1 - la primera més la segona fila.

A la pràctica, això significa que part de la primera fila a la segona, de la qual la funció de PHP (files de comparació) decideix. Una versió més limitada de strpos (), perquè en l'últim cas, és possible conèixer la posició de l'entrada.

strcmp () Funció - sensible. Si voleu comparar la cadena insensible, PHP ofereix la seva strcasecmp (). La sintaxi és similar.

A la pràctica, sovint es requereix per treballar no amb tota la línia, però només una part d'ella. Per aquest conjunt de funcions PHP (comparació de cadenes) inclòs strncmp (s1, s2, N). El tercer paràmetre especifica realitzar la comparació només N-bytes. El resultat és strcmp similar ().

Arrays, cordes i comparar

Aquests gairebé sempre estan representats per les cadenes. Si tenim en compte les matrius, objectes o estructures de dades, són només diferents variants de combinacions d'unes simples estructures de cadena.

matrius de cadenes i files es poden proporcionar en una forma complementària. La transformació de la matriu en una implosió funció de cadena (array, símbol), per exemple: $ margins1 = implode ( '', $ estil-> getInnerMargin ()); ... l'algoritme / usuari ...; $ Margins2 = implosió ( '', $ estil-> getInnerMargin ()) li permet combinar la totalitat de la posició de l'objecte en la posició de la cadena.

A continuació, pot realitzar la comparació de cadenes de PHP, i en un moment: $ xec = strcmp ($ margins1, $ margins2) i assegureu-vos que l'algoritme o l'usuari que alguna cosa ha canviat (o no). Si es realitza una comparació de la forma habitual, vostè ha d'ordenar elements de la matriu. Es necessita més temps i és més complicat.

Objectes i línia

Fins i tot un ús més espectacular de PHP (comparacions de cadenes) es pot implementar a través de les idees orientades a objectes.

La idea moderna de les instal·lacions suggereix que tenen propietats i mètodes. Els primers són generalment representats per números, cadenes, matrius i altres objectes. Aquesta última sovint inclouen tècniques d'enregistrament (PUT) en la línia de recuperació i de la línia (GET).

A diferència de les matrius, l'objecte fa la feina amb les seves pròpies propietats i interactua amb altres objectes. Objecte "competent" en què les seves propietats són d'un valor real per al algoritme del programa en el seu conjunt.

Aquest moment constitueix una base i l'oportunitat de gravar quan es gravi una cadena només la informació necessària, i en la recuperació de la línia per restaurar totes les propietats de treball en l'estat desitjat. En general, en qualsevol objecte que conté informació important i de treball (temps). L'aplicació d'aquesta idea li permet estalviar no només la memòria, espai en disc, el registre de base de dades, sinó que també fa que sigui possible comparar les mitjanes de les línies més simples i precisos.

Sintaxi i semàntica

PHP està desenvolupant de forma dinàmica, i la seva funcionalitat tant en termes de cadenes que comparen constantment i millorat pel que fa al seu tractament. No obstant això, res impedeix que un desenvolupador per moure el centre de gravetat a la zona de la semàntica.

Sense cap dubte, la funcionalitat és bona, però el seu ús pot ser transferit en el significat del codi en els objectes. Quan l'algoritme es presenta com un sistema d'interacció entre els objectes, es veu molt millor que les comparacions de seqüències i accions en seqüència directa, un estil clàssic.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 ca.unansea.com. Theme powered by WordPress.