Результат

Вместо этого необходимо пользоваться операциями сравнения с контролем типов, которые могут проверить, что два сравниваемых операнда относятся к одному типу данных, прежде чем в действительности сравнивать их значения. Например, выражение:
(О === ‘Macro’J;
вернет значение false, что, очевидно, и ожидалось получить. То же произойдет с выражением:
(О === ‘ 0 ‘) ;
Самый аккуратный способ сравнения двух строк, однако, обеспечивает функция
strcmp ():
int strcmp(Svall, 5val2) ;
Результат, возвращаемый strcmpf), зависит от алфавитного порядка двух строк. Если Svall и Sval2 идентичны, strcmp!) вернет 0. Следует помнить, что функция strcmp () выполняет сравнение, чувствительное к регистру, поэтому, например, “Macro” и “macro” не будут идентичны.
Если два значения не эквивалентны, сравнение выполняется в соответствии с текущими локальными установками клиента — другими словами, использование алфавитных правил сортировки зависит от локальной среды, в которой выполняется сценарий. Если Svall по алфавиту предшествует Sval2, результат будет отрицательным, в противном случае — положительным.
Например, при использовании локальных установок на компьютере автора (Canadian-English), получаются следующие результаты:
echo strcmp(’Apple’,'Banana’); // возвращает < О
echo strcmp(’apple1,’Apple’); // возвращает > 0
echo strcmp(’1′,’test1}; // возвращает < 0
Как видите, цифры имеют меньшее контекстное значение, чем буквы, а заглавные буквы — меньшее контекстное значение, чем прописные. В канадском английском региональном стандарте это также касается двоичных значений каждого символа, но это не всегда верно, в частности для тех языков, где комбинации символов рассматриваются как один символ (например, ‘ае’ в немецком, или ‘cz’ — в чешском).
Если вам нужно реализовать сравнение строк, не чувствительное к регистру, на этот случай РНР предлагает функцию strcasecmp (}, которая принимает те же параметры, что и strcmp ():
echo strcasecmp{’Macro’,'macro1); // возвращает 0.

Tags: , ,

Related posts


Leave a Reply


Термобельё Cratex: термобельё. CRAFT, ASICS, KV.