<?php
# basic test
string_lt('a', 'z');
string_lt('z', 'a');
# numeric strings
string_lt('22', '123');
string_lt('123', '22');
# non-numeric strings
string_lt('bb', 'abc');
string_lt('abc', 'bb');
# non-numeric strings with numbers in
# should be the same as "numeric strings" if strcmp() really does string comparison
string_lt('22x', '123x');
string_lt('123x', '22x');
function string_lt($str1, $str2)
{
# you can't use < operator for comparing strings
# wacky stuff will happen
$lt_says = ((string) $str1 < (string) $str2);
# see what strcmp() says
$strcmp_says = strcmp($str1, $str2);
echo "$str1 less than $str2; lt_says: $lt_says, strcmp_says: $strcmp_says\n";
}
a less than z; lt_says: 1, strcmp_says: -25
z less than a; lt_says: , strcmp_says: 25
22 less than 123; lt_says: 1, strcmp_says: 65536
123 less than 22; lt_says: , strcmp_says: -65536
bb less than abc; lt_says: , strcmp_says: 65536
abc less than bb; lt_says: 1, strcmp_says: -65536
22x less than 123x; lt_says: , strcmp_says: 65605
123x less than 22x; lt_says: 1, strcmp_says: -65605
a less than z; lt_says: 1, strcmp_says: -25
z less than a; lt_says: , strcmp_says: 25
22 less than 123; lt_says: 1, strcmp_says: 1
123 less than 22; lt_says: , strcmp_says: -1
bb less than abc; lt_says: , strcmp_says: 1
abc less than bb; lt_says: 1, strcmp_says: -1
22x less than 123x; lt_says: , strcmp_says: 1
123x less than 22x; lt_says: 1, strcmp_says: -1