yong Posted October 25, 2006 Share Posted October 25, 2006 this is my test code[code]<?phpvar_dump('1' >'a');//bool(false)var_dump('97'>'a');//ASCⅡ a->97//bool(false)var_dump('97'<'a');//bool(true)var_dump('98'>'a');//bool(false)?>[/code]i want to know why?why i can receive this result?what is they compare with eachother's standard?my english is very poor ,i am chineseif you can't understand hat i said ,please reaply to me?think you very much Quote Link to comment Share on other sites More sharing options...
btherl Posted October 25, 2006 Share Posted October 25, 2006 When comparing strings, "lexical comparison" is used.1st character of string is compared, then 2nd character, then 3rd, ...If you compare "123" and "abc", php will check "1" and "a", using an ascii table like this: http://www.lookuptables.com/If you compare "123" and "12c", php will check "1" and "1", then "2" and "2", then "3" and "c". It looks for the first difference.BUT, if you compare "123" and "321", php will compare them as numbers. It only compares strings if it cannot convert them to numbers. If you always want string comparison, you can use strcmp() Quote Link to comment Share on other sites More sharing options...
yong Posted October 25, 2006 Author Share Posted October 25, 2006 i understand this think you very much btherl ..:) Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.