欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

PHP中的比较运算符

程序员文章站 2022-05-23 14:13:30
...

一般规则

一般来说,有以下规则
PHP中的比较运算符

数字与字符串比较

如果比较一个数字和字符串或者比较涉及到数字内容的字符串,则字符串会被转换为数值并且比较按照数值来进行。但当用 === 或 !== 进行比较时则不进行类型转换,因为此时类型和数值都要比对。
例如:

<?php
var_dump(0 == "a"); // 0 == 0 -> true
var_dump("1" == "01"); // 1 == 1 -> true
var_dump("10" == "1e1"); // 10 == 10 -> true
var_dump(100 == "1e2"); // 100 == 100 -> true

类型转换

关于不同类型比较之中的类型转换
PHP中的比较运算符

标准数组比较

提供一种数组比较的思路:
* 比较数组元素个数
* 若元素个数相同,则比较键名。如果数组1中的键名数组2中没有,则无法比较,返回NULL
* 如果数组2中存在相同键名,则比较值大小
该方法中没有处理键名顺序问题,可能导致不同结果。[建议先对数组元素按键名排序]

<?php
// 数组是用标准比较运算符这样比较的
function standard_array_compare($op1, $op2)
{
    if (count($op1) < count($op2)) {
        return -1; // $op1 < $op2
    } elseif (count($op1) > count($op2)) {
        return 1; // $op1 > $op2
    }
    foreach ($op1 as $key => $val) {
        if (!array_key_exists($key, $op2)) {
            return null; // uncomparable
        } elseif ($val < $op2[$key]) {
            return -1;
        } elseif ($val > $op2[$key]) {
            return 1;
        }
    }
    return 0; // $op1 == $op2
}
相关标签: php 比较运算