Počítače, Programovanie
PHP Cvičenie: Porovnanie string
PHP je zameraná na dobrú prácu s informáciami. Syntax jazyka je reprezentovaný plnohodnotný balík porovnávacej funkcie, spracovanie reťazca, operátormi porovnanie.
Akýkoľvek algoritmus - sled volieb a akcií. Ale skôr, než si vybrať, budete potrebovať niečo porovnať ju s niečím. Line - najviac priestranný, efektívne a účelné riadiaci algoritmus mechanizmu. Line - variant prezentácie dát. Dátový - to je hlavnou témou "starostlivosti" akéhokoľvek algoritmu.
Obyčajná logika "Porovnanie-action"
Všeobecne platí, že dynamické typovanie jazykom robí žiadne rozdiely v dátach, napríklad porovnávanie PHP linky a číslo je príliš nelíši. Číslo - to je tiež reťazec, ak obsahuje len čísla, miesto a tam nie je jeden znak, ktorý nie je používaný reprezentovať čísla v akejkoľvek podobe (matematické notácie).
Ak kontenkatsii číslo automaticky spojí s linkou, žiadne otázky a žiadne skryté chyby, funkcie aj keď GetType () dáva, číslo 'alebo, double'.
Avšak, tam je rozdiel medzi použitím is_int () a is_numeric (). Prvá dáva pravdu, iba v prípade, že parameter je celé číslo, druhý, keď všetky čísla a číselný reťazec (typ premennej je, reťazec ', ale zahŕňa všetky uvedené matematický zápis).
Jedná sa o jednoduchý príklad - dobrým príkladom toho, ako operátory porovnávania PHP reťazec (, == ', ===' ..., = '!), Môže predstavovať rad prekvapení. Premenné môžu meniť ich typ, nie vždy sú čísla, ale takmer vždy môžu viesť k sérii. V krajnom prípade - bude prázdny reťazec.
Na základe vyššie uvedeného, PHP porovnanie reťazec funkcia je najobľúbenejší. Čo presne si vybrať, rozhodnúť vývojárov. Veľa možností k dispozícii až do regulárnych výrazov.
Hranice k dispozícii funkčný
PHP-porovnanie dvoch radoch je dobrý "robiť" funkcie strpos () - najlacnejšie, verný a praktickou voľbou. Ak výsledok číslom funkcie, potom jednoznačne jeden reťazec sa rovná druhej alebo jednej časti do druhej.
Radikálne opačný, ale aj absolútne správny prístup - použitie regulárnych výrazov.
Ak je funkcia $ cResult = scCheckFileName ($ cstr) dáva, pravda ', potom linka je názov súboru vordovsky. Bude mať iba jednu možnosť expanzie, .docx 'a žiadne znaky v názve: iba písmená, číslice a znaky, _',, - '.
Túto funkciu možno ľahko previesť 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, ...
Použitie strpos () a preg_match () - extrémy. Nie sú priamo spojené s problematikou obdobia porovnávanie. Ale otázka algoritmu - je otázkou použitia kombinácia štýlu a využitie všetkých možností na dosiahnutie spoľahlivého a správny výsledok.
Funkčné PHP: porovnanie reťazcov
Arsenal jazyk v porovnaní struny - čisté, a to nielen porovnanie funkcií, ale aj kombinácia vyhľadávanie alebo náhrada priamo. Nie vždy jednať sa musí zhodovať so porovnanie, pretože ten nemusí nutne viesť k zmene v každom riadku. Často budete musieť vybrať jednu alebo druhú vetvu algoritmu.
Normálna varianta PHP: vykoná porovnanie reťazcov funkcie int strcmp (S1, S2).
Výsledok funkcie:
- 0 - line sú rovnaké;
- -1 - prvý reťazec je menšia ako druhý;
- 1 - prvá väčšia ako druhá rada.
V praxi to znamená, že časť prvej rade k druhej, z ktorých funkcie PHP (porovnanie riadky) rozhodne. Viac obmedzená verzia strpos (), pretože v takom prípade je možné spoznať pozíciu záznamu.
strcmp () funkcie - citlivé. Ak chcete porovnať reťazec necitlivý, PHP ponúka svojim strcasecmp (). Syntax je podobná.
V praxi sa často musia pracovať nie celej linky, ale len jeho časť. Pre túto sadu funkcií PHP (porovnanie reťazcov) zahrnuté strncmp (S1, S2, N). Tretí parameter určuje vykonávať porovnania iba N-bajtov. Výsledok je podobný strcmp ().
Polia, reťazce a porovnanie
Tie sú takmer vždy reprezentované reťazci. Ak vezmeme pole, objekty alebo dátové štruktúry, je to len rôzne varianty kombináciou jednoduchých reťazcových štruktúr.
String polia a riadky môžu byť opatrené doplnkovým spôsobom. Transformácia pole do funkcie reťazec implodujú (pole, symbol), napríklad: $ margins1 = implodujú ( '', $ style-> getInnerMargin ()); ... algoritmus / user ...; $ Margins2 = implodovala (, ', $ style-> getInnerMargin ()) umožňuje zlúčiť všetky polohy objektu v polohe reťazca.
Potom môžete vykonať porovnanie PHP reťazec, a zrazu: $ kontrola = strcmp ($ margins1, $ margins2) a uistite sa, že algoritmus alebo užívateľ, že sa niečo zmenilo (alebo nie). Ak máte vykonať porovnanie obvyklým spôsobom, budete musieť vyriešiť prvkov poľa. Trvá dlhšie a je zložitejší.
Objekty a linka
Ešte veľkolepejšie použitie PHP (porovnávanie reťazcov) môže byť implementovaný pomocou objektovo orientované nápady.
Moderné myšlienka zariadenie naznačuje, že majú vlastnosti a metódy. Prvý z nich sú zvyčajne reprezentované čísla, reťazce, polia, a ďalších objektov. Tá často obsahujú záznamovej techniky (dať) v regeneračnom potrubí a od vedenia (get).
Na rozdiel od poľa objekt robí prácu s vlastnými vlastnosťami a interaguje s inými objektmi. Objekt "kompetentní", v ktorom jeho vlastnosti sú skutočné hodnoty pre algoritmus programu ako celku.
Tento moment poskytuje základ a možnosť nahrať pri zázname Reťazec len potrebné informácie, a vo využívaní trati obnoviť všetky pracovné vlastnosti v požadovanom stave. Obvykle sa v každom objekte je podstatné informácie a pracovať (čas). Realizácia tejto myšlienky vám umožní ušetriť nielen pamäť, miesto na disku, databázový záznam, ale tiež umožňuje porovnávať riadky jednoduchšie a presnejšie prostriedky.
Syntax a sémantika
PHP sa dynamicky rozvíja, a jeho funkcie a to ako pokiaľ ide o porovnanie reťazcov a stále zlepšuje, pokiaľ ide o ich spracovaní. Nič však nebráni vývojár presunúť ťažisko v oblasti sémantiky.
Nepochybne, funkčnosť je dobrá, ale jeho použitie môže byť prevedená do významu tohto kódu v objektoch. Ak je algoritmus prezentovaný ako systém interakcie medzi objektmi, to vyzerá oveľa lepšie ako porovnávanie sekvencií a podujatí v priamom slede, klasickom štýle.
Similar articles
Trending Now