ComputereProgrammering

PHP Praksis: streng sammenligning

PHP er fokuseret på god information håndtering. Syntaksen af sproget er repræsenteret fuldt funktionel sæt sammenligning funktioner, snor behandling, sammenligning operatører.

Enhver algoritme - en sekvens af valg og handlinger. Men før du foretager et valg, du har brug for noget at sammenligne det med noget. Line - den mest rummelige, effektiv og praktisk algoritme kontrolmekanisme. Line - en variant af data præsentation. En data - det er hovedemnet for "pleje" af enhver algoritme.

Almindelig logik "sammenligning-handling"

Generelt dynamisk maskinskrivning tungen gør ingen forskel i data, såsom PHP sammenligning linje og antallet er ikke meget anderledes. Nummer - det er også en streng, når den kun indeholder tal, punkt, og der er ikke et enkelt tegn, der ikke bruges til at repræsentere tal i nogen form (matematisk notation).

Hvis kontenkatsii nummer automatisk fusionerer med den linje, ingen stillede spørgsmål og ingen skjulte fejl, selv om getType () funktionen giver den 'heltal' eller 'dobbelt'.

Men der er en forskel mellem at bruge is_int () og is_numeric (). Den første giver sandheden, kun når parameteren er et helt tal, andet, når et nummer eller en numerisk streng (variabel type er 'snor', men omfatter alle forudsat matematisk notation).

Dette er et simpelt eksempel - et godt eksempel på, hvordan en PHP strengen sammenligning operatører ( '==' '===' ... '='!) Kan præsentere mange overraskelser. Variablerne kan ændre deres type, de er ikke altid tal, men næsten altid de kan føre til linjen. I et ekstremt tilfælde - det vil være en tom streng.

På baggrund af ovenstående, en PHP strengen sammenligning funktion er mest populære. Hvad der præcist at vælge, at afgøre udvikleren. Masser af muligheder op til regulære udtryk.

Grænserne for de tilgængelige funktionelle

PHP-sammenligning af de to rækker er godt "gøre" funktion strpos () - den billigste, den trofaste og praktisk løsning. Hvis resultatet af den funktion nummer, så klart en streng er lig med en anden eller den ene del til den anden.

Radikalt modsatte, men også absolut den rigtige tilgang - brug af regulære udtryk.

Hvis funktionen $ cResult = scCheckFileName ($ CSTR) giver 'sand', så den linje er navnet på den fil vordovsky. Han vil have kun én mulighed for ekspansion '.docx' og ingen tegn i navnet: kun bogstaver, tal og tegnene '_', '-'.

Funktionen kan nemt omdannes til andre typer filer: $ cPtr = '/^([a-zA-Z...0-9\-\_]{4,239})\.(html|js|css|png|jpg | docx | txt) {1} $ / u'. Denne variant udvider rækken scanningslinje downloades (fx er PHP strengen sammenligning anvendt "for at uploade filer til en server, med ingen chance for input fejl") til html, js, css, ...

Brug af strpos () og preg_match () - ekstremer. De er ikke direkte relateret til spørgsmålet om sammenligning periode. Men spørgsmålet af algoritmen - er et spørgsmål om at bruge en kombination af stil, til brug af alle muligheder opnå en pålidelig og korrekt resultat.

Funktionel PHP: streng sammenligning

Arsenal sprog sammenlignet strenge - en ren, ikke blot sammenligningen funktion, men også en kombination af en søgning eller erstatning direkte. Ikke altid handle skal falde sammen med den sammenligning, da sidstnævnte ikke nødvendigvis fører til en ændring i en hvilken som helst række. Ofte er du nødt til at vælge den ene eller den anden gren af algoritmen.

Normal variant PHP: udfører streng sammenligning funktion int strcmp (S1, S2).

Resultatet af funktionen:

  • 0 - line er ens;
  • -1 - den første streng er mindre end den anden;
  • 1 - den første mere end den anden række.

I praksis betyder dette, at en del af den første række til den anden, hvorfra PHP funktion (sammenligning rækker) bestemmer. En mere begrænset udgave af strpos (), fordi der i sidstnævnte tilfælde er det muligt at kende placeringen af posten.

strcmp () funktion - følsomme. Hvis du ønsker at sammenligne strengen-ufølsom, PHP tilbyder sine strcasecmp (). Syntaksen er tilsvarende.

I praksis ofte forpligtet til at arbejde ikke med hele linjen, men kun en del af det. Til dette sæt funktioner PHP (string sammenligning) inkluderet strncmp (s1, s2, N). Den tredje parameter angiver udføre sammenligningen kun N-bytes. Resultatet er lignende strcmp ().

Arrays, strygere og sammenligne

Disse er næsten altid repræsenteret ved strenge. Hvis vi betragter de arrays, objekter, eller datastrukturer, det er bare forskellige varianter af kombinationer af en simpel snor strukturer.

String arrays og rækker kan tilvejebringes på en komplementær måde. Transformation af array til en streng funktion implodere (array, symbol), for eksempel: $ margins1 = implodere ( '', $ stil-> getInnerMargin ()); ... algoritmen / bruger ...; $ Margins2 = implodere ( '', $ stil-> getInnerMargin ()) gør det muligt at flette alle af objektet position i strengen position.

Du kan derefter udføre PHP strengen sammenligning, og på et tidspunkt: $ kontrol = strcmp ($ margins1, $ margins2) og sørg for algoritmen eller brugeren om, at noget har ændret sig (eller ikke). Hvis du udfører en sammenligning på den sædvanlige måde, er du nødt til at sortere array elementer. Det tager længere tid og er mere kompliceret.

Objekter og linje

Endnu mere opsigtsvækkende brug PHP (string sammenligninger) kan implementeres via objektorienterede ideer.

Den moderne idé om faciliteterne tyder på, at de har egenskaber og metoder. Førstnævnte er normalt repræsenteret ved tal, strenge, arrays og andre objekter. Sidstnævnte indeholder ofte optagelse teknikker (sætte) i bedring linje og fra linje (får).

I modsætning til arrays, objektet gør arbejdet med deres egne egenskaber og interagerer med andre objekter. Objekt "kompetent", hvor dens egenskaber er af reel værdi for algoritmen af programmet som helhed.

Dette øjeblik giver et grundlag og mulighed for at optage, når der optages en streng kun de nødvendige oplysninger, og i inddrivelse af linjen for at gendanne alle de arbejdende egenskaber i den ønskede tilstand. Normalt, i ethvert objekt der er betydelig information og fungerer (tid). Gennemførelsen af denne idé kan du gemme ikke kun hukommelse, diskplads, databasen rekord, men også gør det muligt at sammenligne linjerne enklere og mere præcis.

Syntaks og semantik

PHP udvikler sig dynamisk, og dens funktionalitet, både hvad angår sammenligne strygere og konstant forbedret med hensyn til deres behandling. Men intet forhindrer en udvikler til at flytte tyngdepunktet inden for semantik.

Utvivlsomt, funktionaliteten er god, men dens anvendelse kan overføres i betydningen af koden i objekter. Når algoritmen præsenteres som et system af interaktion mellem objekter, ser det meget bedre end de sekvens sammenligninger og handlinger i direkte sekvens, en klassisk stil.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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