КомпютриПрограмиране

PHP практика: сравняване на низове

PHP е фокусиран върху добра информация боравене. Синтаксисът на езика е представена напълно функционален набор от функции сравнение, обработка низ, оператори за сравнение.

Всеки алгоритъм - последователност на избор и действия. Но преди да направи избор, имате нужда от нещо, за да го сравни с нещо. Линия - най-обемен, ефективен и практичен механизъм за контрол алгоритъм. Линия - вариант на представяне на данните. А данни - това е основната тема на "грижа" на който и да е алгоритъм.

Обикновените логика "сравнение действие"

В общи линии, динамичен пишете език прави никакви различия в данните, като например сравнение PHP линия и броят им не е много по-различно. Номер - тя също е низ, когато тя съдържа само цифри, точка и там не е един символ, който не се използва за представяне на числа във всякаква форма (математически нотация).

Ако kontenkatsii номер автоматично се слива с линията, без въпроси и без скрити грешки, дори и ако gettype () функция дава "цяло число" или "двойно".

Въпреки това, има разлика между използването на is_int () и is_numeric (). Първият дава истината, само когато параметърът е цяло число, второ, когато всяко число или числов низ (тип променлива е "низ", но включва всички условие математически нотация).

Това е един прост пример - един добър пример за това как операторите сравнение низ ( "== '' ===" ... "="!) Може да представи много изненади. Променливите могат да променят вида им, те не винаги са числа, но почти винаги те могат да доведат до линията. В краен случай - ще бъде празен низ.

Въз основа на гореизложеното, PHP функция за сравняване на низове е най-популярен. Какво точно да изберете, за да се реши на разработчика. Много възможности, които съществуват до регулярни изрази.

Границите на разположение функционалния

PHP-сравнението на двата реда е добро "правя" функционални strpos () - най-евтиният, верният и практичен вариант. Ако резултатът от броя функция, тогава ясно един низ е равен на друг или една част към друга.

Радикално противоположни, но и абсолютно правилният подход - използването на регулярни изрази.

Ако функцията $ cResult = scCheckFileName ($ CStr) дава "вярно", а след това на линията е името на vordovsky на файла. Той ще има само един вариант на разширяване ".docx" и никакви символи в името: само букви, цифри и знаците '_', '-'.

Функцията може лесно да се превърне в други видове файлове: $ cPtr = '/^([a-zA-Z...0-9\-\_]{4,239})\.(html|js|css|png|jpg | DOCX | ТХТ) {1} $ / ф. Този вариант се простира гама линия на сканиране свалящ се на (например сравнение на низ се прилага ", за да качвате файлове на сървъра, без шанс за вход грешка") за HTML, JS, CSS, ...

Използване на strpos () и preg_match () - крайности. Те не са пряко свързани с издаването на периода на сравнение. Но въпросът на алгоритъма - е въпрос на използване на комбинация от стил, използване на всички възможности за постигане на надежден и коректен резултат.

Функционално PHP: сравняване на низове

Арсенал език в сравнение струни - чист, не само функцията на сравнителния, но също така и комбинация от търсене или заместител директно. Не винаги действа трябва да съвпада с сравнението, тъй като последната не е задължително да доведе до промяна в която и ред. Често трябва да изберете един или друг клон на алгоритъма.

Нормално вариант PHP: извършва сравнение низ функция Int strcmp (s1, s2).

Резултатът от функцията:

  • 0 - линия са равни;
  • -1 - първия низ е по-малко от втората;
  • 1 - първият повече от втория ред.

На практика това означава, че част от първия ред на втория, който решава PHP функция (за сравнение редове). А по-ограничена версия на strpos (), тъй като в последния случай е възможно да се знае позицията на записа.

strcmp () функция - чувствителен. Ако искате да сравните низ, нечувствително, PHP предлага на своите strcasecmp (). Синтаксисът е подобен.

На практика често се изисква да не се работи с цялата линия, но само част от него. За този набор от функции PHP (сравняване на низове), включени strncmp (S1, S2, N). Третият параметър определя извърши сравнението само N-байта. Резултатът е подобен strcmp ().

Масиви, низове и сравняване

Те са почти винаги представлява от низове. Ако ние считаме, масиви, обекти или структурите от данни, това е само на различни варианти на комбинации от обикновен низ структури.

String редици и редове могат да бъдат осигурени по допълващ начин. Трансформация на масива в низ функция свие а (масив, символ), например: $ margins1 = свие ( ',', $ стил-> getInnerMargin ()); ... алгоритъма / потребител ...; $ Margins2 = спуквам ( ',', $ стил-> getInnerMargin ()) ви позволява да обедините всички позицията на обект в позиция на низ.

След това можете да извършвате сравнение на низ, и в даден момент: $ проверка = strcmp ($ margins1, $ margins2) и се уверете, че алгоритъмът или на потребителя, че нещо се е променило (или не). Ако извършите сравнение по обичайния начин, ще трябва да подреди масив елементи. Това отнема по-дълго и е по-сложно.

Обекти и ред

Още по-ефектно използване на PHP (Сравнява низ) може да се прилага чрез обектно-ориентирани идеи.

Модерният идеята на съоръженията предполага, че те имат свойства и методи. Първите обикновено са представени от числа, низове, масиви, както и други обекти. Последното често включват техники за запис (постави) в линията за възстановяване и от линия (получите).

За разлика от масиви, обектът върши работата със собствените си качества и си взаимодейства с други обекти. Обектът "компетентен", в която неговите свойства са от реална стойност за алгоритъма на програмата като цяло.

Този момент предоставя основа и възможност за запис на запис, когато низ само необходимата информация, както и във възстановяването на линията, за да възстановите всички работни имотите в желаното състояние. Обикновено, в който и да е обект, има съществена информация и работа (време). Изпълнението на тази идея ви позволява да запишете не само памет, дисково пространство, запис на базата данни, но също така дава възможност за сравнение на линиите по-прости и по-точни средства.

Синтаксис и семантика

PHP се развива динамично и неговата функционалност както по отношение на сравняване на низове и непрекъснато подобрява по отношение на тяхното лечение. Въпреки това, нищо не пречи на един разработчик, за да преместите центъра на тежестта в областта на семантиката.

Безспорно е, че функционалността е добра, но използването му може да се прехвърля по смисъла на този кодекс по обекти. Когато алгоритъмът е представена като система на взаимодействие между обектите, тя изглежда много по-добре, отколкото сравненията поредните и действията в директна последователност, класически стил.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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