Praksa PHP: usporedba s nizom
PHP je prilično dobar u obradi podataka. Sintaksa jezika predstavlja čitav niz usporedbenih funkcija, obradu niza, operateri usporedbe.
sadržaj
Svaki algoritam je niz izbora i akcija. Ali prije nego što odaberete, morate nešto usporediti s nečim. Žice - najlikvidniji, učinkovitiji i praktičniji mehanizam za upravljanje algoritmom. Linije - varijanta prikazivanja podataka. A podaci su glavni predmet "brige" bilo kojeg algoritma.
Uobičajena logika "usporedbene akcije"
Općenito, jezik dinamičko tipkanje ne čini nikakve posebne razlike u podacima, na primjer, u PHP-u, usporedba niza i broja nije mnogo drugačija. Broj je također niz kada sadrži samo znamenke, razdoblje, a ne postoji niti jedan znak koji se ne koristi za prikazivanje broja u bilo kojem obliku (matematička notacija).
Ako kontenkatsii broj automatski spaja s linijom, bez pitanja i bez skrivene pogreške, čak i ako gettype () funkcija daje „cijeli broj” ili „dvostruko”.
Međutim, postoji razlika između korištenja is_int () i is_numeric (). Prvi daje istinu, samo kada je parametar je cijeli broj, drugo, kada se bilo koji broj ili numerički niz (varijabla tipa je „string”, ali ima sve pod uvjetom matematički zapis).
To je jednostavan primjer - dobar primjer kako PHP niz usporedbu operatera ( „==” „===” ... „=”!) Mogu prezentirati mnoga iznenađenja. Varijable mogu promijeniti njihov tip, nisu uvijek brojevi, ali gotovo uvijek mogu dovesti do niza. U krajnjem slučaju to će biti prazan niz.
Na temelju gore navedenog, u PHP-u funkcija usporedbe niza je najpopularnija. Koga odabrati, za rješavanje razvojnog programera. Mnoge su opcije dostupne do uobičajenih izraza.
Granice dostupnih funkcionalnosti
PHP-usporedba dvaju žica dobro je "učinjeno" funkcijom strpos () - najjeftinijom, pravom i praktičnom opcijom. Ako je Rezultat toga funkcija je broj, tada je jedinstveno jedna linija jednaka drugoj ili jedna ulazi u drugu.
Kardinalno suprotan, ali i apsolutno korektan pristup je korištenje regularnih izraza.
Ako poziv na $ cResult = scCheckFileName ($ cStr) daje "istinit", onda je niz naziv datoteke vorda. On će imati samo jedno proširenje `.docx` i nema znakova u imenu: samo slova, brojevi i `_`, `-` znakovi.
Funkcija se lako može pretvoriti u druge vrste datoteka: $ cPtr = „/^([a-zA-Z...0-9-_]{4,239}).(html|js|css|png|jpg | docx | txt) {1} $ / u `. Ova varijanta proširuje raspon skeniranja linija preuzimanje (npr, PHP niz usporedba primjenjuje „za upload datoteka na poslužitelju, bez šanse ulaznog greške”) za HTML, JS, CSS, ...
Upotreba strpos () i preg_match () je krajnost. Oni nisu izravno povezani s problemom usporedbe vremena. Ali pitanje algoritma je pitanje primjene kombinacije stilova, koristeći sve mogućnosti postizanja pouzdane i točne rezultate.
Funkcionalna PHP: usporedba niza
Arsenal jezika u odnosu na žice nije samo funkcija čiste usporedbe već kombinacija izravnog pretraživanja ili zamjene. Nije uvijek akcija trebala podudarati s usporedbom, jer potonja ne mora nužno dovesti do promjene u bilo kojoj liniji. Često je potrebno odabrati jednu ili drugu granu algoritma.
Uobičajena verzija PHP: usporedba niza provodi se funkcijom int strcmp (s1, s2).
Rezultat funkcije:
- 0 - linije su jednake;
- -1 - prva linija je manja od druge;
- 1 - prvi redak je veći od drugog.
U praksi to znači da prva linija ulazi u drugu liniju, odakle funkcija PHP (nizovna usporedba) odlučuje. Ograničena verzija strpos (), jer u potonjem slučaju možete znati položaj unosa.
Funkcija strcmp () razlikuje velika i mala slova. Ako želite usporediti nizove bez osjetljivosti na slučaj, PHP predlaže upotrebu strcasecmp (). Sintaksa je slična.
U praksi, često je potrebno raditi ne cijelu liniju, već samo s njegovim dijelom. Za ovo, strncmp (s1, s2, N) je uključen u skup funkcija PHP (usporedba niza). Treći parametar pokazuje da se uspoređuju samo N-bajtovi. Rezultat je sličan strcmp ().
Rasporedi, žice i usporedbe
Podatke gotovo uvijek predstavljaju žice. Ako uzmemo u obzir polja, predmete ili informacijske strukture, onda su to jednostavno različite varijante kombinacije jednostavnijih struktura niza.
Gudački nizovi i redovi mogu se osigurati na komplementaran način. Transformacija polja u niz funkcija urušavati (polje, simbol), na primjer: $ margins1 = urušavati (” `$ style-> getInnerMargin ()) - ... algoritam / korisnik ...- $ margins2 = urušavati (` ”$ style-> getInnerMargin ()) vam omogućuje spajanje svih objekta pozicije u nizu položaju.
Nakon toga možete izvesti PHP string usporedbu i odjednom: $ provjera = strcmp ($ margins1, $ margins2) i provjerite je li algoritam ili korisnik koji se nešto promijenilo (ili ne). Ako izvršite usporedbu na uobičajeni način, morate razvrstati elemente polja. Potrebno je dulje i izgleda sve glupo.
Predmeti i žice
Čak i učinkovitije korištenje PHP (usporedba niza) može se provesti kroz objekte usmjerene ideje.
Moderna ideja objekata podrazumijeva prisutnost njihovih svojstava i metoda. Prve se obično predstavljaju brojevima, nizovima, nizovima i drugim objektima. Druga često uključuje metode pisanja (stavljanja) na niz i vraćanje iz niza (get).
Za razliku od polja, objekt obavlja rad s njegovim svojstvima i interakciju s drugim objektima. Objekt je "kompetentan" u onome što njezina svojstva imaju stvarnu vrijednost za algoritam, program u cjelini.
Ovaj trenutak pruža osnovu i mogućnost rekorda da popravi u liniji samo potrebne informacije, te na obnovi iz linije da obnovi sva radna svojstva u potrebnom stanju. Obično u bilo kojem objektu postoje informacije bitne i radne (privremene). Provedba ove ideje omogućuje vam da ne samo spremite memoriju, prostor na disku, zapise baze podataka, već također omogućavate usporedbu nizova na jednostavniji i točniji način.
Sintaksa i semantika
PHP se dinamički razvija, a njegova funkcionalnost kako u smislu uspoređivanja žica, tako iu odnosu na njihovu obradu stalno se poboljšava. Međutim, ništa ne sprječava razvojnog programera da prebacuje težište na polje semantike.
Bez sumnje, funkcionalnost je dobra, ali njegova upotreba može se prenijeti na semantički dio koda, u objekte. Kada je algoritam predstavljen kao sustav interakcije objekata, izgleda puno bolje od redoslijeda usporedbi i djelovanja u izravnom serijskom, klasičnom stilu.
- Pretvorba vrste. Okrugli i Trunc funkcioniraju u Pascalu
- jаvascript Array za pohranu neograničenog broja varijabli
- Što funkcionira SQL CONCAT?
- Što funkcionira PHP mikrotime funkcija?
- String operater u Pascalovom nizu
- Korištenje funkcije eksplodira PHP
- SQL SUBSTRING funkcija
- Upotreba indeksa (jаvascript) prilikom rada s nizovima i nizovima
- jаvascript: rad s nizovima, funkcije
- Učinkovite operacije na razini linije pomoću metode split jаvascript
- Upravljanje znakovima: jаvascript metoda substring ()
- Upotreba zamjenske zamjenske zamjene ()
- Upotreba funkcije trim (PHP)
- PHP konstrukcija ako je drugo: skrivena logika
- Kako odrediti broj elemenata u PHP nizu?
- Sintaksa jаvascript parseInt: primjeri upotrebe
- Kako pretvoriti string u broj u jаvascript
- Značenje i upotreba jаvascript neispravnog
- Upravljanje znakovima: jаvascript metoda substring ()
- Sintaksa jаvascript parseInt: primjeri upotrebe
- Kako pretvoriti string u broj u jаvascript