Practica PHP: comparație șir

PHP este destul de bun la procesarea informațiilor. Sintaxa limbajului este reprezentată de un set complet de funcții de comparare, procesare de șir, operatori de comparare.

compararea php șir

Orice algoritm este o secvență de alegeri și acțiuni. Dar înainte de a face o alegere, trebuie să compari ceva cu ceva. String - mecanismul cel mai capabil, eficient și practic pentru controlul algoritmului. Linii - o variantă a reprezentării datelor. Și datele sunt subiectul principal al "îngrijirii" oricărui algoritm.

Logica obișnuită a "acțiunii de comparație"

În general, limba tipărirea dinamică nu face diferențe deosebite în date, de exemplu, în PHP, compararea unui șir și a unui număr nu este 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ă).

În cazul unei numerotări, numărul se îmbină automat cu șirul fără întrebări suplimentare și fără erori ascunse, chiar dacă funcția gettype () dă "integer" sau "double".

compararea php a două șiruri de caractere

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).

Acest exemplu simplu este un bun exemplu, deoarece operatorii de comparare a șirului din PHP (`==`, `===`, `! =`, ...) pot da o mulțime de surprize. Variabilele își pot schimba tipul, ele nu sunt întotdeauna numere, dar aproape întotdeauna pot duce la un șir. Într-un caz extrem, acesta va fi un șir gol.

php operatori de comparare șir

Pe baza celor de mai sus, în PHP funcția de comparare a șirurilor este cea mai populară. Pe care să alegeți, pentru a rezolva dezvoltatorul. O mulțime de opțiuni sunt disponibile până la expresii regulate.

Limitele funcționalității disponibile

Comparația PHP a două șiruri este bine "făcută" de funcția strpos () - opțiunea cea mai ieftină, cea mai potrivită și mai practică. În cazul în care Rezultatul funcția este un număr, apoi o singură linie este egală cu cealaltă sau una intră în alta.

Abordarea cardinal opusă, dar, de asemenea, absolut corectă este folosirea expresiilor regulate.

Exemplul autorului nu este o imagine

Dacă apelul la $ cResult = scCheckFileName ($ cStr) are "adevărat", atunci șirul este numele fișierului vord. El va avea o singură extensie a ".docx" și nici un caractere în nume: numai litere, numere și semne "_", ";".

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, ...

Folosirea strpos () și preg_match () este extremă. Ele nu sunt direct legate de problema comparației de sincronizare. Dar problema algoritmului este chestiunea aplicării unei combinații de stiluri, folosind toate posibilitățile de a obține un rezultat fiabil și corect.

PHP funcțional: compararea șirului

Arsenalul limbii versus șiruri de caractere nu este doar o funcție a comparației pure, ci o combinație cu căutarea sau înlocuirea directă. Nu întotdeauna acțiunea ar trebui să coincidă cu comparația, deoarece aceasta din urmă nu duce neapărat la o schimbare în orice linie. Este adesea necesar să selectați una sau o altă ramură a algoritmului.



Versiunea uzuală a PHP: compararea șirului este realizată de funcția int strcmp (s1, s2).

Rezultatul funcției:

  • 0 - liniile sunt egale;
  • -1 - prima linie este mai mică decât a doua;
  • 1 - prima linie este mai mare decât a doua.

În practică, aceasta înseamnă că prima linie intră pe a doua linie, din care se decide funcția PHP (comparație șir). O versiune mai limitată a strpos (), deoarece în ultimul caz puteți cunoaște poziția de intrare.

Funcția strcmp () este sensibilă la minuscule. Dacă doriți să comparați șiruri de caractere fără sensibilitate la caz, PHP sugerează utilizarea strcasecmp (). Sintaxa este similară.

În practică, de multe ori este necesar să nu lucreze cu întreaga linie, ci numai cu partea sa. Pentru aceasta, strncmp (s1, s2, N) este inclus în setul de funcții PHP (comparație șir). Al treilea parametru indică faptul că se compară numai N-octeți. Rezultatul este similar cu strcmp ().

Arrays, Strings și Comparations

Datele sunt aproape întotdeauna reprezentate de șiruri de caractere. Dacă luăm în considerare rețele, obiecte sau structuri de informații, atunci acestea sunt pur și simplu variante diferite ale unei combinații de structuri de șir mai simple.

php funcția de comparare șir

String-urile și șirurile de caractere pot fi reprezentate î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 ()) permite îmbinarea tuturor pozițiilor obiectului în linia de poziții.

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ă faceți comparația în mod obișnuit, atunci trebuie să sortați elementele matriceelor. Ea durează mai mult și pare mai greoaie.

Obiecte și șiruri de caractere

Chiar și utilizarea mai eficientă a PHP (compararea șirului) poate fi implementată prin idei orientate pe obiecte.

Ideea modernă a obiectelor implică prezența proprietăților și metodelor lor. Primele sunt de obicei reprezentate de numere, șiruri de caractere, tablouri și alte obiecte. Al doilea include adesea metodele de scriere (put) la un șir și restaurarea dintr-un șir (get).

Spre deosebire de arrays, un obiect își desfășoară activitatea cu proprietățile sale și interacționează cu alte obiecte. Obiectul este "competent" în ceea ce proprietățile sale au o valoare reală pentru algoritm, programul ca întreg.

compararea php șir

Acest moment dă baza și posibilitatea înregistrării de a stabili pe o linie doar informațiile necesare și la restaurarea de la o linie pentru a restaura toate proprietățile de lucru în starea necesară. De obicei, în orice obiect există informații esențiale și de lucru (temporare). Implementarea acestei idei vă permite să salvați nu doar memoria, spațiul de pe disc, înregistrările bazei de date, ci și să comparați șirurile într-un mod mai simplu și mai precis.

Sintaxă și semantică

PHP se dezvoltă dinamic, iar funcționalitatea sa, atât în ​​ceea ce privește compararea șirurilor, cât și în ceea ce privește prelucrarea lor, este în mod constant îmbunătățită. Cu toate acestea, nimic nu împiedică dezvoltatorul să transfere centrul de greutate în câmpul de semantică.

Fără îndoială, funcționalitatea este bună, dar utilizarea ei poate fi transferată în partea semantică a codului, în obiecte. Atunci când algoritmul este reprezentat ca un sistem de interacțiune a obiectelor, acesta arată mult mai bine decât o secvență de comparații și acțiuni în stil direct, în stil clasic.

Distribuiți pe rețelele sociale:

înrudit
Delphi postează în PascalDelphi postează în Pascal
Programare: Java. Tipuri de dateProgramare: Java. Tipuri de date
jаvascript Array pentru a stoca un număr nelimitat de variabilejаvascript Array pentru a stoca un număr nelimitat de variabile
Simboluri în PHP: șir la număr și înapoiSimboluri în PHP: șir la număr și înapoi
String operator în Pascal - șirString operator în Pascal - șir
Matematică din jаvascript MathMatematică din jаvascript Math
Tipuri de algoritmi în informatică: exempleTipuri de algoritmi în informatică: exemple
Folosind funcția PHP explodeazăFolosind funcția PHP explodează
Folosind indexOf (jаvascript) atunci când lucrați cu matrice și șiruri de caractereFolosind indexOf (jаvascript) atunci când lucrați cu matrice și șiruri de caractere
jаvascript: lucrul cu șiruri de caractere, funcțiijаvascript: lucrul cu șiruri de caractere, funcții
» » Practica PHP: comparație șir