Hi! > So the float comparison behavior under ~B (what's in the patch) may seem > more desirable because it preserves the numerical comparison when possible > (and we don't have to add leading whitespace and zeros to the mix, > strcmp("9, "11") returns 1). Until you realize it's alternating between > two behaviors depending on whether B or ~B. So: > > "9223372036854775809" < " 09443372036854775809" (true, -- floats differ, > compare as float) > "9223372036854775809" < " 09223372036854775810" (false -- floats are the > same, memcmp)
I understand this may not be ideal but I really see this as very narrow use case - if you really want to compare strings in lexicographical order, you just should use strcmp. So I think this fixes common cases where people have high WTF factor, and if we later have better idea on how to fix all the cases we could amend it further. But I'm not sure adding more magic to the mix (i.e. doing special comparisons, etc.) is going to be better - it will only make it harder for people to understand. -- Stanislav Malyshev, Software Architect SugarCRM: http://www.sugarcrm.com/ (408)454-6900 ext. 227 -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php