PočítačeProgramování

PHP Cvičení: Srovnání string

PHP je zaměřena na dobrou práci s informacemi. Syntaxe jazyka je reprezentován plně funkční sadu porovnávací funkce, zpracování řetězce, operátory porovnání.

Jakýkoliv algoritmus - sled voleb a akcí. Ale dříve, než si vybrat, budete potřebovat něco porovnat ji s něčím. Line - nejvíce prostorný, efektivní a účelné řídicí algoritmus mechanismu. Line - varianta prezentace dat. Datový - to je hlavním tématem „péče“ jakéhokoli algoritmu.

Obyčejná logika „Srovnání-action“

Obecně platí, že dynamické typování jazykem dělá žádné rozdíly v datech, například srovnávání PHP linky a číslo je příliš neliší. Číslo - to je také řetězec, pokud obsahuje pouze čísla, místo a tam není jeden znak, který není používán reprezentovat čísla v jakékoliv podobě (matematické notace).

Pokud kontenkatsii číslo automaticky spojí s linkou, žádné otázky a žádné skryté chyby, funkce i když GetType () dává ‚číslo‘ nebo ‚double‘.

Nicméně, tam je rozdíl mezi použitím is_int () a is_numeric (). První dává pravdu, pouze v případě, že parametr je celé číslo, druhý, když všechna čísla a číselný řetězec (typ proměnné je ‚řetězec‘, ale zahrnuje všechny uvedené matematický zápis).

Jedná se o jednoduchý příklad - dobrým příkladem toho, jak porovnávací operátory PHP řetězec ( ‚==‘ ‚===‘ ... ‚=‘!), Může představovat řadu překvapení. Proměnné mohou měnit jejich typ, ne vždy jsou čísla, ale téměř vždy mohou vést k řadě. V krajním případě - bude prázdný řetězec.

Na základě výše uvedeného, PHP srovnání řetězec funkce je nejoblíbenější. Co přesně si vybrat, rozhodnout vývojáře. Spousta možností k dispozici až do regulárních výrazů.

Hranice k dispozici funkční

PHP-srovnání dvou řadách je dobrý „dělat“ funkce strpos () - nejlevnější, věrný a praktickou volbou. Pokud výsledek číslem funkce, pak jednoznačně jeden řetězec se rovná druhé nebo jedné části do druhé.

Radikálně opačný, ale také naprosto správný přístup - použití regulárních výrazů.

Pokud je funkce $ cResult = scCheckFileName ($ CSTR) dává ‚pravda‘, pak linka je název souboru vordovsky. Bude mít pouze jednu možnost expanze ‚.docx‘ a žádné znaky v názvu: pouze písmena, číslice a znaky ‚_‘, ‚-‘.

Tuto funkci lze snadno převést na jiné typy souborů: $ cPtr = ‚/^([a-zA-Z...0-9\-\_]{4,239})\.(html|js|css|png|jpg | docx | txt) {1} $ / u‘. Tato varianta rozšiřuje rozsah snímání čáry stahovatelný (například porovnání PHP řetězec je aplikován „nahrát soubory na server, bez možnosti vstupu chyby“) pro html, js, css, ...

Using na strpos () a preg_match () - extrémy. Nejsou přímo spojené s problematikou období srovnávání. Ale otázka algoritmu - je otázkou použití kombinace stylu a využití všech možností k dosažení spolehlivého a správný výsledek.

Funkční PHP: porovnání řetězců

Arsenal jazyk ve srovnání struny - čisté, a to nejen srovnání funkcí, ale také kombinace vyhledávání nebo náhrada přímo. Ne vždy jednat se musí shodovat se srovnání, protože ten nemusí nutně vést ke změně v každém řádku. Často budete muset vybrat jednu nebo druhou větev algoritmu.

Normální varianta PHP: provádí porovnávání řetězců funkce int strcmp (S1, S2).

Výsledek funkce:

  • 0 - line jsou stejné;
  • -1 - první řetězec je menší než druhý;
  • 1 - první větší než druhá řada.

V praxi to znamená, že část první řadě k druhé, z nichž funkce PHP (porovnání řádky) rozhodne. Více omezená verze strpos (), protože v takovém případě je možné poznat pozici záznamu.

strcmp () funkce - citlivé. Chcete-li porovnat řetězec necitlivý, PHP nabízí svým strcasecmp (). Syntaxe je podobná.

V praxi se často musí pracovat ne celé linky, ale jen jeho část. Pro tuto sadu funkcí PHP (porovnání řetězců) zahrnuty strncmp (S1, S2, N). Třetí parametr určuje provádět srovnání pouze N-bajtů. Výsledek je podobný strcmp ().

Pole, řetězce a porovnání

Ty jsou téměř vždy reprezentovány řetězci. Vezmeme-li pole, objekty nebo datové struktury, je to jen různé varianty kombinací jednoduchých řetězcových struktur.

String pole a řádky mohou být opatřeny doplňkovým způsobem. Transformace pole do funkce řetězec implodují (pole, symbol), například: $ margins1 = implodují ( '', $ style-> getInnerMargin ()); ... algoritmus / user ...; $ Margins2 = implodovala ( ‚‘, $ style-> getInnerMargin ()) umožňuje sloučit všechny polohy objektu v poloze řetězce.

Pak můžete provést srovnání PHP řetězec, a najednou: $ kontrola = strcmp ($ margins1, $ margins2) a ujistěte se, že algoritmus nebo uživatel, že se něco změnilo (nebo ne). Máte-li provést porovnání obvyklým způsobem, budete muset vyřešit prvků pole. Trvá déle a je složitější.

Objekty a linka

Ještě velkolepější použití PHP (porovnávání řetězců) může být implementován pomocí objektově orientované nápady.

Moderní myšlenka zařízení naznačuje, že mají vlastnosti a metody. První z nich jsou obvykle reprezentovány čísla, řetězce, pole, a dalších objektů. Ta často obsahují záznamové techniky (dát) v regeneračním potrubí a od vedení (get).

Na rozdíl od pole objekt dělá práci s vlastními vlastnostmi a interaguje s jinými objekty. Objekt „kompetentní“, ve kterém jeho vlastnosti jsou skutečné hodnoty pro algoritmus programu jako celku.

Tento moment poskytuje základ a možnost nahrát při záznamu Řetězec pouze nezbytné informace, a ve využívání trati obnovit všechny pracovní vlastnosti v požadovaném stavu. Obvykle se v každém objektu je podstatné informace a pracovat (čas). Realizace této myšlenky vám umožní ušetřit nejen paměť, místo na disku, databázový záznam, ale také umožňuje porovnávat řádky jednodušší a přesnější prostředky.

Syntaxe a sémantika

PHP se dynamicky rozvíjí, a jeho funkce a to jak pokud jde o porovnání řetězců a stále zlepšuje, pokud jde o jejich zpracování. Nic však nebrání vývojář přesunout těžiště v oblasti sémantiky.

Nepochybně, funkčnost je dobrá, ale jeho použití může být převedena do významu tohoto kódu v objektech. Je-li algoritmus prezentován jako systém interakce mezi objekty, to vypadá mnohem lépe než porovnávání sekvencí a akcí v přímém sledu, klasickém stylu.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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