PHP je celkom dobré pri spracovaní informácií. Syntax jazyka predstavuje plnohodnotná sada porovnávacích funkcií, spracovanie reťazcov, porovnávacie operátory.

porovnanie reťazcov php

Každý algoritmus je poradie volieb aakcie. Ale predtým, než sa rozhodnete, musíte niečo niečo porovnať. Struny - najväčší, účinný a praktický mechanizmus na ovládanie algoritmu. Linky - varianta reprezentácie údajov. A dáta sú hlavným predmetom "starostlivosti" o akýkoľvek algoritmus.

Zvyčajná logika "porovnávacej akcie"

Vo všeobecnosti jazyk dynamického písania nie jevytvára zvláštne rozdiely v údajoch, napríklad v PHP, porovnanie reťazca a čísla nie je veľmi odlišné. Číslo je tiež reťazec, keď obsahuje iba číslice, obdobie a neexistuje žiadny znak, ktorý by sa nepoužíval na to, aby reprezentoval číslo v ktorejkoľvek z jeho foriem (matematická notácia).

Ak kontenkatsii číslo automaticky spojí s linkou, žiadne otázky a žiadne skryté chyby, funkcie aj keď GetType () dáva "číslo" alebo "double".

php porovnanie dvoch reťazcov

Existuje však rozdiel medzi používaním funkcieis_int () a is_numeric (). Prvý uvádza pravdivosť, keď parameter je iba celé číslo, druhá v prípade akéhokoľvek číselného alebo číselného reťazca (premenná má typ "reťazec", ale obsahuje všetko, čo je poskytnuté matematickou notáciou).

Tento jednoduchý príklad je dobrým príkladom, ako v PHPoperátory porovnávania reťazcov ("==", "===", "! =", ...) môžu poskytnúť veľa prekvapení. Premenné môžu zmeniť svoj typ, nie sú vždy čísla, ale takmer vždy môžu viesť k reťazci. V extrémnom prípade to bude prázdny reťazec.

php operátorov porovnávania reťazcov

Na základe vyššie uvedeného je v PHP najpopulárnejšia funkcia porovnávania reťazcov. Ktorá z nich si vyberiete, aby ste vyriešili vývojára. K regulárnym výrazom je k dispozícii veľa možností.

Hranice dostupných funkcií

PHP-porovnanie dvoch reťazcov je dobre vykonané funkcioustrpos () je najlacnejšia, pravá a praktická možnosť. Ak je výsledkom tejto funkcie číslo, potom jedinečne jeden riadok je rovnaký ako druhý alebo jeden vstupuje iný.

Kardinálne opačný, ale aj úplne správny prístup je použitie regulárnych výrazov.

Príkladom autora nie je obrázok

Ak voláte funkciu $ cResult =scCheckFileName ($ cStr) dá "true", takže reťazec je názov vordiálneho súboru. Bude mať iba jednu možnosť rozšírenia ".docx" a žiadne znaky v názve: iba písmená, čísla a znaky "_", "-".

Funkcia môže byť ľahko konvertovaná na inétypy súborov: $ cPtr = "/^([a-zA-Z...0-9-_]{4,239}).(html|js|css|png|jpg|docx|txt){1}$/ u ". Tento variant rozširuje rozsah snímania čiary sťahovateľný (napríklad nákupný PHP reťazec je aplikovaný "nahrať súbory na server, bez možnosti vstupu chyby") pre html, js, css, ...

Pomocou strpos () a preg_match () -extrémne. Nie sú priamo spojené s otázkou časového porovnania. Ale otázka algoritmu je otázka uplatnenia kombinácie štýlov, využívajúc všetky možnosti na dosiahnutie spoľahlivého a správneho výsledku.

Funkčné PHP: porovnanie reťazcov

Arsenál jazyka proti líniám je nielenfunkcie čistého porovnania, ale aj kombináciu s vyhľadávaním alebo náhradou priamo. Nie vždy by sa táto akcia mala zhodovať s porovnaním, pretože to nemusí nutne viesť k zmene v akejkoľvek línii. Často je potrebné vybrať jednu alebo inú vetvu algoritmu.

Zvyčajná verzia PHP: porovnanie reťazcov sa vykonáva pomocou funkcie int strcmp (s1, s2).

Funkcia Výsledok:

  • 0 - čiary sú rovnaké;
  • -1 - prvý riadok je menší ako druhý;
  • 1 - prvý riadok je väčší ako druhý.

V praxi to znamená, že prvýDruhý riadok, z ktorého sa rozhoduje funkcia PHP (porovnanie reťazcov). Oveľa obmedzenejšia verzia strpos (), pretože v druhom prípade môžete poznať vstupnú pozíciu.

Funkcia strcmp () rozlišuje veľké a malé písmená. Ak chcete porovnať reťazce bez rozlišovania malých a veľkých písmen, PHP navrhuje použitie strcasecmp (). Syntax je podobný.

V praxi je často potrebné pracovať nie s celýmline, ale len s jeho časťou. Za týmto účelom je strncmp (s1, s2, N) zahrnutá v súbore funkcií PHP (porovnanie reťazcov). Tretí parameter označuje, že sa porovnávajú len N-bajty. Výsledok je podobný strcmp ().

Súbory, reťazce a porovnania

Údaje sú takmer vždy reprezentované reťazcami. Ak vezmeme do úvahy pole, objekty alebo informačné štruktúry, potom sú to jednoducho rôzne varianty kombinácie jednoduchších reťazových štruktúr.

funkcia porovnávania reťazcov php

Stringové polia a reťazce môžu byťsú prezentované komplementárnym spôsobom. Transformácia pole do funkcie reťazec implodujú (pole, symbol), napríklad: $ margins1 = implodujú ( "", $ style-> getInnerMargin ()); ... práca algoritmu / používateľa ...; $ Margins2 = implodovala ( "", $ style-> getInnerMargin ()) umožňuje zlúčiť všetky polohy objektu v polohe reťazca.

Potom môžete spúšťať PHP-string porovnanie a preraz: $ check = strcmp ($ margins1, $ margins2) a uistite sa, že algoritmus alebo používateľ niečo zmenil (alebo nie). Ak vykonávate porovnanie obvyklým spôsobom, musíte zoradiť prvky polí. Trvá to dlhšie a vyzerá to ťažšie.

Objekty a reťazce

Efektívnejšie využitie PHP (porovnanie reťazcov) môže byť implementované prostredníctvom objektovo orientovaných myšlienok.

Moderná myšlienka objektovpredpokladá existenciu ich vlastností a metód. Prvé z nich sú zvyčajne reprezentované číslami, reťazcami, poliami a inými objektmi. Druhá metóda často obsahuje metódy písania (vložiť) do reťazca a obnovenie reťazca (get).

Na rozdiel od polí, objekt pracujejeho vlastnosti a spolupracuje s inými objektmi. Objekt je "kompetentný" v tom, čo jeho vlastnosti majú skutočnú hodnotu pre algoritmus, program ako celok.

porovnanie reťazcov php

Tento bod poskytuje dôvody a príležitosťzáznamy opraviť v riadku iba potrebné informácie, a pri obnovení z linky obnoviť všetky pracovné vlastnosti v potrebnom stave. Zvyčajne v každom objekte sú dôležité a pracovné informácie (dočasné). Implementácia tejto myšlienky vám umožňuje ušetriť nielen pamäť, miesto na disku, databázové záznamy, ale tiež umožňuje porovnávať reťazce jednoduchším a presnejším spôsobom.

Syntax a sémantika

PHP sa dynamicky vyvíja a jeho funkčnosť ako vporovnávanie liniek a ich spracovanie sa neustále zlepšuje. Nič však nebráni vývojár presunúť ťažisko v oblasti sémantiky.

Nepochybne, funkčné je dobré, ale jehoPoužitie sa dá preniesť do sémantickej časti kódu do objektov. Keď je algoritmus reprezentovaný ako systém interakcie objektov, vyzerá to oveľa lepšie ako sekvencia porovnaní a akcií v priamom seriálovom, klasickom štýle.

</ p>