PHP太空船运算符<=>是否存在-1、0、1之外的返回值?
PHP太空船运算符返回值规则解答
该结论恒定成立,PHP的太空船运算符(<=>)的返回值只会是-1、0、1三个整数,不存在其他返回结果。
- 该运算符是PHP 7版本引入的组合比较符,核心作用是完成两个操作数的大小比较,返回值严格遵循以下规则:
- 左操作数小于右操作数时,返回
-1 - 左操作数等于右操作数时,返回
0 - 左操作数大于右操作数时,返回
1
- 左操作数小于右操作数时,返回
- 你看到的“返回小于、等于或大于0的整数”属于比较运算符的通用描述,本身没有问题,但PHP的官方实现中对非零返回值做了严格限定,只会输出±1,不会出现2、-3这类其他整数结果,该规则适用于所有支持的操作数类型比较场景,包括数值、字符串、数组、对象等。
你可以通过以下代码验证该规则:
// 数值比较示例 var_dump(3 <=> 10); // int(-1) var_dump(10 <=> 10); // int(0) var_dump(10 <=> 3); // int(1) // 字符串比较示例 var_dump("apple" <=> "banana"); // int(-1) var_dump("test" <=> "test"); // int(0) var_dump("zoo" <=> "apple"); // int(1)
内容的提问来源于stack exchange,提问作者dstrube
相关产品推荐
相关产品推荐

