Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在PHP中,二进制安全字符串比较是什么意思?_Php_String_String Comparison - Fatal编程技术网

在PHP中,二进制安全字符串比较是什么意思?

在PHP中,二进制安全字符串比较是什么意思?,php,string,string-comparison,Php,String,String Comparison,包含此描述的PHP函数的一些示例是strcmp()和strcasecmp(),它们在内部是如何工作的?这种二进制比较是如何工作的? 我无法理解为什么这些函数返回-1、0和1(或0) 提前谢谢 如果两个字符串的起始部分相同,则会从两个字符串中截断它们 将结果字符串与两种可能的结果进行比较: 如果结果字符串之一是空字符串,则返回非空字符串的长度(符号取决于向函数传递参数的顺序) 在任何其他情况下,只比较第一个字符的数值。无论数值之间的差异有多大,结果都是+1或-1 问题是“二进制安全”是什么意思

包含此描述的PHP函数的一些示例是strcmp()和strcasecmp(),它们在内部是如何工作的?这种二进制比较是如何工作的? 我无法理解为什么这些函数返回-1、0和1(或0)

提前谢谢

  • 如果两个字符串的起始部分相同,则会从两个字符串中截断它们
  • 将结果字符串与两种可能的结果进行比较:
    • 如果结果字符串之一是空字符串,则返回非空字符串的长度(符号取决于向函数传递参数的顺序)
    • 在任何其他情况下,只比较第一个字符的数值。无论数值之间的差异有多大,结果都是+1或-1

    问题是“二进制安全”是什么意思,还是为什么比较返回-1、0和1?@apokryfos我的意思是“二进制安全字符串比较”,我认为这个操作会导致-1、0和1(或0),但我不知道它是如何工作的。二进制安全与比较结果的-1、0和1值无关。您可以有一个不是比较的二进制安全操作,也可以有一个不是二进制安全的比较,但仍然返回-1、0和1。我知道二进制安全字符串比较操作不一定与-1、0和-1相关(或者根据这些函数的PHP文档为0)但我要理解的是这些函数在内部是如何工作的。下面的文档中的答案是否不足以解释这一点?我花了一点时间才理解它是如何工作的,我发现关键是第一个字符。谢谢分享这个链接,它帮了我很多。关于这个例子也有很大帮助: