Strict
Not using strict operator === can lead to variable type problems.
$string = "123abc";
echo $string == 123 ? 'true' : 'false'; // true (incorect)
// "123abc" -> (int) "123abc" -> 123
echo $string === 123 ? 'true' : 'false'; // false (corect)
Safe
Binary safe string comparison. Returns < 0 if str1 is less than str2 Returns > 0 if str1 is greater than str2 Returns 0 if they are equal
echo strcmp("a", "a"); // 0
echo strcasecmp("A", "a"); // 0 (case insensitive)
echo strcmp("A", "a"); // -1
echo strcmp("a", "A"); // 1
Binary safe string comparison (n characters)
$str = "hello John";
echo strncasecmp($str, "Hello World", 5); // 0
substr_compare()
// substr_compare($main_str, $str, $offset, $length, $flag_case)
echo substr_compare("abcde", "bc", 1, 2); // bc, bc = 0
echo substr_compare("abcde", "de", -2, 2); // de, de = 0
echo substr_compare("abcde", "cd", 1, 2); // bc, cd = -1
echo substr_compare("abcde", "bc", 1, 3); // bcd, bc = 1
// main_str offset is less than str offset
echo substr_compare("abcde", "BC", 1, 2, true); // bc, bc = 0
// Third parameter - case insenstivity
echo substr_compare("abcde", "abc", 5, 1); // Warning
// Offset is equal or greater than string legth
Similar
similar_text() returns the number of matching chars in both strings.
echo similar_text("cat", "can"); // 2
similar_text("cat", "can", $percent);
echo $percent; // 66,6
Levenshtein
Minimal number of characters you have to replace. Insert or delete to transform str1 into str2.
echo levenshtein('cat', 'can'); // 1
Soundex
Words pronounced similarly produce the same soundex key. Can be used to simplify searches in databases.
echo soundex('wise'); // W200
echo soundex('ways'); // W200
Metaphone
More precise than soundex. It is based in english pronunciation rules - limited global use.
echo soundex('programming') == soundex('programmer'); // TRUE
// P626 == P626
echo metaphone('programming') != metaphone('programmer'); // TRUE
// PRKRMNK != PRKRMR
Last update: 496 days ago