PHP如何将字符串与比较运算符进行比较?

Sha*_*ngh 12 php string compare operators type-coercion

我正在比较字符串和比较运算符.

我需要对以下两个比较及其结果进行一些简短的解释.

if('ai' > 'i')
{
    echo 'Yes';
}
else
{
    echo 'No';
}

output: No
Run Code Online (Sandbox Code Playgroud)

为什么这样输出?

if('ia' > 'i')
{
    echo 'Yes';
}
else
{
    echo 'No';
}

Output: Yes
Run Code Online (Sandbox Code Playgroud)

再次,为什么?

也许我忘了一些基础知识,但我真的需要对这些比较例子进行一些解释来理解这个输出.

小智 16

PHP将使用基于字母顺序的大于和小于比较运算符来比较alpha字符串.

  • 在第一个例子,ai来之前i按字母顺序排列,从而的测试>(大于)是false-较早的顺序被认为是"大于""小于",而不是.

  • 在第二示例中,ia后附带i字母顺序这样的测试>(大于)是true-在以后的顺序将其视为"大于".


Bre*_*dan 6

扩展@ coderabbi的答案:

它与在某些应用程序中按编号排序时获得的逻辑类型相同,并获得如下结果:

  • 0
  • 1
  • 105
  • 11
  • 2
  • 21
  • 3
  • 333
  • 34

它不是基于字符串长度,而是基于字符串的每个字符.