CalculatoareProgramare

PHP Practica: comparație șir

PHP este axat pe manipulare informații bune. Sintaxa limbii este reprezentat set complet funcțional de funcții de comparare, prelucrare șir de caractere, operatori de comparare.

Orice algoritm - o secvență de alegeri și acțiuni. Dar, înainte de a face o alegere, ai nevoie de ceva să-l compare cu ceva. Linie - mecanismul de control algoritm cel mai încăpătoare, mai eficient și practic. Linie - o variantă de prezentare a datelor. O date - acesta este subiectul principal al „grijă“ de orice algoritm.

logica obișnuită „comparație-acțiune“

În general, limba dinamică dactilografiere nu există diferențe în datele, cum ar fi linia de comparație PHP și numărul nu este cu mult diferit. Numărul - este, de asemenea, un șir de caractere, atunci când acesta conține doar cifre, punct și nu există un singur caracter care nu este utilizat pentru a reprezenta numere în orice formă (notație matematică).

Dacă numărul kontenkatsii fuzionează în mod automat cu linia, fără întrebări și fără erori ascunse, chiar dacă funcția gettype () dă „întreg“ sau „dublu“.

Cu toate acestea, există o diferență între utilizarea is_int () și is_numeric (). Primul dă adevăr, numai când parametrul este un număr întreg, în al doilea rând, atunci când orice număr sau un șir numeric (tipul variabilei este „string“, ci cuprinde toate notație matematice furnizate).

Acesta este un exemplu simplu - un bun exemplu de modul în care o operatori de comparare PHP șir ( „==“ „===“ ... „=“!) Poate prezenta mai multe surprize. Variabilele pot schimba tipul lor, acestea nu sunt întotdeauna numere, dar aproape întotdeauna ele pot duce la linia. Într-un caz extrem - va fi un șir gol.

Pe baza celor de mai sus, o funcție de comparare șir PHP este cel mai popular. Ce anume de a alege, pentru a decide dezvoltator. O mulțime de opțiuni disponibile până la expresii regulate.

Limitele funcționale disponibile

PHP-comparare a celor două rânduri este bun „face“ strpos function () - cele mai ieftine, credincioșii și opțiunea practică. În cazul în care rezultatul numărul funcției, atunci în mod clar un șir de caractere este egal cu altul sau de o parte în alta.

Radically opus, dar, de asemenea, absolut abordarea corectă - utilizarea expresiilor regulate.

În cazul în care funcția de $ cResult = scCheckFileName ($ CSTR) dă „adevărat“, atunci linia este numele fișierului vordovsky. El va avea doar o singură opțiune de expansiune „.docx“ și nici un caracter în numele: numai litere, cifre și caracterele «_», «-».

Funcția poate fi ușor convertite în alte tipuri de fișiere: $ cPtr = „/^([a-zA-Z...0-9\-\_]{4,239})\.(html|js|css|png|jpg | docx | txt) {1} $ / u“. Această variantă se extinde (de exemplu, se aplică comparație PHP șir „pentru a încărca fișiere pe un server, fără nici o șansă de eroare de intrare“) intervalul de scanare pot fi descărcate de linie pentru HTML, js, css, ...

Folosind strpos () și preg_match () - extreme. Ele nu sunt direct legate de problema perioadei de comparație. Dar problema algoritmului - este o chestiune de a folosi o combinație de stil, utilizarea tuturor oportunităților de a obține un rezultat de încredere și corecte.

PHP funcțional: comparație șir

limba Arsenal siruri de caractere comparate - o, nu numai funcția de comparație pură, dar, de asemenea, o combinație de căutare sau înlocuitor direct. Nu acționează întotdeauna trebuie să coincidă cu comparația, deoarece aceasta din urmă nu conduce în mod necesar la o schimbare în orice rând. De multe ori trebuie să alegeți una sau cealaltă ramură a algoritmului.

Varianta Normal PHP: realizează compararea șir funcția int strcmp (s1, s2).

Rezultatul funcției:

  • 0 - line sunt egale;
  • -1 - primul șir este mai mic decât al doilea;
  • 1 - primul mai mult decât al doilea rând.

În practică, acest lucru înseamnă că o parte din primul rând la al doilea, de la care decide funcția PHP (rânduri de comparație). O versiune mai limitată a strpos (), pentru că în acest din urmă caz, este posibil să se cunoască poziția de intrare.

strcmp () funcție - sensibilă. Dacă doriți să comparați insensibile șirul, PHP ofera strcasecmp sale (). Sintaxa este similară.

În practică, de multe ori nu este necesar pentru a lucra cu întreaga linie, ci doar o parte din ea. Pentru acest set de funcții PHP (comparație șir) inclus strncmp (s1, s2, N). Al treilea parametru specifică comparări numai N-bytes. Rezultatul este similar cu strcmp ().

Matricelor siruri de caractere și compararea

Acestea sunt aproape întotdeauna reprezentate de siruri de caractere. Dacă luăm în considerare tablouri, obiecte, sau structuri de date, este doar diferite variante de combinații ale unui simplu structuri șir.

matrice STRING și rânduri pot fi furnizate într-un mod complementar. Transformarea matrice într-o implozie funcție string (matrice, simbol), de exemplu: $ margins1 = implozie ( '', $ style-> getInnerMargin ()); ... algoritmul / utilizator ...; $ Margins2 = implozie ( „“, $ style-> getInnerMargin ()) vă permite să fuzioneze toate poziția obiectului în poziția șir.

Puteți apoi efectua comparația șir PHP, și la un moment dat: $ = cec strcmp ($ margins1, $ margins2) și asigurați-vă că algoritmul sau utilizatorul că ceva sa schimbat (sau nu). Dacă efectuați o comparație în mod obișnuit, va trebui să sortați elementele de matrice. Este nevoie de mai mult și este mai complicată.

Obiecte și linie

Chiar mai spectaculoase utilizarea PHP (comparații șir) pot fi implementate prin intermediul unor idei orientate-obiect.

Ideea modernă a instalațiilor sugerează că acestea au proprietăți și metode. Primele sunt de obicei reprezentate prin numere, siruri de caractere, tablouri și alte obiecte. Acestea din urmă includ adesea tehnicile de înregistrare (pus) în linia de recuperare și de la linia (get).

Spre deosebire de matrice, obiectul funcționează cu propriile lor proprietăți și interacționează cu alte obiecte. Obiectul „competent“, în care proprietățile sale sunt de o valoare reală pentru algoritmul programului în ansamblu.

Acest moment oferă o bază și posibilitatea de a înregistra în timpul înregistrării unui șir de caractere numai informațiile necesare, și în recuperarea liniei pentru a restabili toate proprietățile de lucru în starea dorită. De obicei, în orice obiect există informații substanțiale și de lucru (timp). Punerea în aplicare a acestei idei vă permite să salvați nu numai de memorie, spațiu pe disc, înregistrarea bazei de date, dar, de asemenea, face posibilă compararea înseamnă liniile simple și mai precise.

Sintaxa și Semantica

PHP este în curs de dezvoltare dinamic și funcționalitatea acestuia, atât în ceea ce privește compararea șiruri și în mod constant îmbunătățite în ceea ce privește tratarea lor. Cu toate acestea, nimic nu împiedică un dezvoltator pentru a muta centrul de greutate în zona de semantica.

Fara indoiala, funcționalitatea este bun, dar utilizarea sa poate fi transferată în sensul codului în obiecte. Atunci când algoritmul este prezentat ca un sistem de interacțiune între obiecte, arată mult mai bine decât comparațiile de secvență și acțiunile în ordine directă, un stil clasic.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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