PHP: Why do we need string comparison function?

人盡茶涼 提交于 2019-12-12 08:28:08

问题


The comparision operators < <= > >= can be applied for strings as well. So why do we need special function for string comparision: strcmp ?


回答1:


Because there are several variations:

Depending on the function, the answer to these questions vary:

  • Is it case sensitive? (strcmp vs strcasecmp, strnatcmp vs strnatcasecmp)
  • Depends it depend on the locale? (strcoll does)
  • Can I specify a collation? (strcoll is affected by setlocale)

Additionaly, the comparison operators also give true or false. strcmp gives an integer so it can encode simultaneously whether there's identity (return 0) or, if it not, which is is bigger (depending on whether the value is positive or negative).




回答2:


Although there are no overloads in PHP for strcmp, strcmp results in 3 different values -1 for less than, 0 for equals and +1 for greater than the compared string. With < = <= > >= you will have (sometimes) to do multiple checks one after another.



来源:https://stackoverflow.com/questions/3255131/php-why-do-we-need-string-comparison-function

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!