RekenaarsProgrammering

Oefen PHP: string vergelyking

PHP is redelik goed in inligtingverwerking. Die sintaksis van die taal word verteenwoordig deur 'n volledige stel vergelykingfunksies, stringverwerking, vergelykingoperateurs.

Enige algoritme is 'n reeks keuses en aksies. Maar voordat jy 'n keuse maak, moet jy iets met iets vergelyk. Lines - die mees ruimtelike, effektiewe en praktiese meganisme vir die beheer van die algoritme. Lyne - 'n variant van data voorstelling. En die data is die hoofvak van "sorg" van enige algoritme.

Die gewone logika van "vergelyking-aksie"

Oor die algemeen maak die dinamiese tik taal nie veel verskil in die data nie, byvoorbeeld in PHP, die vergelyking van 'n string en 'n nommer is nie veel anders nie. 'N Nommer is ook 'n string wanneer dit slegs syfers, 'n tydperk bevat, en daar is nie 'n enkele karakter wat nie gebruik word om 'n getal in enige vorm (wiskundige notasie) voor te stel nie.

In die geval van 'n nommering, meng die nommer outomaties met die string sonder onnodige vrae en geen verborge foute nie, selfs al gee die gettype () funksie 'integer' of 'dubbel'.

Daar is egter 'n verskil tussen die gebruik van is_int () en is_numeric (). Die eerste gee die waarheid as die parameter slegs 'n heelgetal is, die tweede wanneer enige nommer of numeriese string (die veranderlike het die tipe 'string', maar bevat alles wat deur die wiskundige notasie verskaf word).

Hierdie eenvoudige voorbeeld is 'n goeie voorbeeld, aangesien PHP se stringvergelykingoperateurs ('==', '===', '! =', ...) baie verrassings kan bied. Veranderlikes kan hul tipe verander, hulle is nie altyd getalle nie, maar byna altyd kan dit lei tot 'n tou. In 'n uiterste geval sal dit 'n leë tou wees.

Op grond van bogenoemde, in PHP is die stringvergelyking funksie die gewildste. Watter een om te kies, om die ontwikkelaar op te los. Baie opsies is beskikbaar tot gereelde uitdrukkings.

Grense van beskikbare funksionaliteit

PHP-vergelyking van twee snare is goed gedoen deur die funksie strpos () - die goedkoopste, regte en praktiese opsie. As die resultaat van hierdie funksie 'n getal is, is uniek een reël gelyk aan die ander of die een betree die ander.

Die kardinale teenoorgestelde, maar ook absoluut korrekte benadering, is die gebruik van gereelde uitdrukkings.

As die oproep tot $ cResult = scCheckFileName ($ cStr) opbrengste 'waar' gee, is die string die naam van die vordian lêer. Hy sal slegs een opsie hê vir die uitbreiding '.docx' en geen karakters in die naam: slegs letters, syfers en '_', '-' tekens.

Die funksie kan maklik omgeskakel word na ander soorte lêers: $ cPtr = '/^([a-zA-Z...0-9\-\_]{4,239})\.(html|js|css|png|jpg | Docx | txt) {1} $ / u '. Hierdie opsie kontroleer die tou strek die omvang van aflaaibare (byvoorbeeld, in PHP word die string vergelyking toegepas "om lêers op te laai na die bediener sonder enige kans op 'n insetfout") op html, js, css, ...

Die gebruik van strpos () en preg_match () is 'n uiterste. Hulle is nie direk verwant aan die kwessie van tydsberekening nie. Maar die kwessie van die algoritme is 'n kwessie van die toepassing van 'n kombinasie van style, met al die moontlikhede om 'n betroubare en korrekte resultaat te behaal.

PHP Funksionaliteit: string vergelyking

Arsenale van taal versus snare is nie net 'n funksie van suiwer vergelyking nie, maar 'n kombinasie met direk soek of vervanging. Die aksie moet nie altyd saamval met die vergelyking nie, aangesien laasgenoemde nie noodwendig lei tot 'n verandering van enige lyn nie. Dit is dikwels nodig om een of ander tak van die algoritme te kies.

Die gewone weergawe van PHP: string vergelyking word uitgevoer deur die funksie int strcmp (s1, s2).

Funksie Resultaat:

  • 0 - die lyne is gelyk;
  • -1 - die eerste reël is minder as die tweede;
  • 1 - die eerste reël is groter as die tweede.

In die praktyk beteken dit dat die eerste reël die tweede reël betree, waaruit die PHP-funksie (stringvergelyking) besluit. 'N meer beperkte weergawe van strpos (), aangesien in laasgenoemde geval u die intreeposisie kan ken.

Die funksie strcmp () is hooflettergevoelig. As jy strings wil vergelyk sonder lettergevoelige karakters, stel PHP voor om die gebruik van strcasecmp () te gebruik. Die sintaksis is soortgelyk.

In die praktyk is dit dikwels nodig om nie met die hele lyn te werk nie, maar slegs met sy deel. Om dit te doen, bevat die stel PHP funksies (string vergelyking) strncmp (s1, s2, N). Die derde parameter dui aan dat slegs N-bytes vergelyk word. Die resultaat is soortgelyk aan strcmp ().

Skikkings, snare en vergelykings

Data word amper altyd deur snare voorgestel. As ons skikkings, voorwerpe, of inligtingstrukture beskou, dan is dit net verskillende variasies van 'n kombinasie van eenvoudiger stringstrukture.

String skikkings en snare kan op 'n komplementêre manier voorgestel word. Transformasie van 'n skikking in 'n string wat implode gebruik (skikking, simbool), byvoorbeeld: $ margins1 = implode (',', $ style-> getInnerMargin ()); ... die werk van die algoritme / gebruiker ...; $ Margins2 = implode (',', $ style-> getInnerMargin ()) stel u in staat om alle posisies van die voorwerp in 'n lyn van posisies saam te voeg.

Dan kan jy 'n PHP string vergelyking op 'n slag uitvoer: $ check = strcmp ($ margins1, $ margins2) en maak seker dat die algoritme of gebruiker iets verander het (of nie). As u die vergelyking op die gewone manier uitvoer, moet u die skikking elemente sorteer. Dit neem langer en lyk meer omslagtig.

Voorwerpe en snare

Nog meer effektiewe gebruik van PHP (string vergelyking) kan geïmplementeer word deur objek-georiënteerde idees.

Die moderne idee van voorwerpe impliseer die teenwoordigheid van hul eienskappe en metodes. Die eerste word gewoonlik voorgestel deur getalle, snare, skikkings en ander voorwerpe. Die tweede sluit dikwels die metodes van skryf in 'n tou en herstel van 'n string (kry).

In teenstelling met skikkings, werk 'n voorwerp werk met sy eienskappe en wissel met ander voorwerpe. Die voorwerp is "bevoeg" in wat sy eienskappe van werklike waarde vir die algoritme, die program as geheel, bevat.

Hierdie oomblik gee die basis en die moontlikheid om rekord te maak in 'n lyn net die nodige inligting, en by herstel van 'n lyn om alle werk eienskappe in die nodige toestand te herstel. Gewoonlik in enige voorwerp is inligting noodsaaklik en werk (tydelik). Deur hierdie idee te implementeer, kan jy nie net geheue, skyfspasie, databasisrekords stoor nie, maar ook dit moontlik maak om snare op 'n meer eenvoudige en presiese manier te vergelyk.

Sintaksis en semantiek

PHP ontwikkel dinamies, en sy funksionaliteit, beide in terme van stringvergelyking en die verwerking daarvan, word voortdurend verbeter. Maar niks verhoed dat die ontwikkelaar die swaartepunt na die veld van semantiek oorplaas nie.

Ongetwyfeld, die funksionele is goed, maar die gebruik daarvan kan oorgedra word na die semantiese deel van die kode, in voorwerpe. Wanneer die algoritme voorgestel word as 'n stelsel van interaksie van voorwerpe, lyk dit baie beter as 'n reeks vergelykings en aksies in direkte seriële, klassieke styl.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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