PHP常用方法

bccomp

定义

//两个数相等时返回 0; num1 比 num2 大时返回 1; 其他则返回 -1。
//第三位数字为小数的位数
bccomp(string $num1, string $num2, ?int $scale = null): int

在判定数据库中的数据是否为0时,可用bccomp方法,使用empty可能会导致错误,因为empty只会判定字符串"0"为空,"0.0"便不为空了,如果数据库存储的是浮点数,使用empty判定是否为实数0,则可能会出bug。

    // empty只会判定字符串’0‘为空
    $r['empty-0'] = empty('0');//true
    // 字符串‘0.0’empty函数认为是非空的
    $r['empty-0.0'] = empty('0.0');//false
    // 精确数值比较,需要使用bccomp
    $r['bccomp'] =bccomp('0.00',0);//0
    // 第三个参数表示保留几位小数
    $r['bccomp-0.00'] = bccomp('0.009',0,2);//0
    // 默认只保留8位小数
    $r['bccomp-0.00000009-defalut'] = bccomp('0.00000009',0);//1
    // 在第九位时就会截断
    $r['bccomp-0.000000009-defalut'] = bccomp('0.000000009',0);//0
    // 可显式指明需要保留几位小数
    $r['bccomp-0.000000009-9'] = bccomp('0.000000009',0,9);//1
    return $r;
{
        "empty-0": true,
        "empty-0.0": false,
        "bccompt": 0,
        "bccompt-0.00": 0,
        "bccompt-0.00000009-defalut": 1,
        "bccompt-0.000000009-defalut": 0,
        "bccompt-0.000000009-9": 1
    }

isset

isset() 函数用于检测变量是否已设置并且非 NULL。
如果一次传入多个参数,那么 isset() 只有在全部参数都已被设置时返回 true。 计算过程从左至右,中途遇到未设置的变量时就会立即停止。

$r = null;
var_dump(isset($r)); //bool(false)
var_dump(isset($r['demo']['fd']));//bool(false)
$d = 'h';
var_dump(isset($d));//bool(true)
var_dump(isset($r,$d));// bool(false)
$e = 'h';
var_dump(isset($d,$e))//bool(true)

empty

判断一个变量是否被认为是空的。当一个变量并不存在,或者它的值等同于false,那么它会被认为不存在。如果变量不存在的话,empty()并不会产生警告。
empty() 本质上与 !isset($var) || $var == false 等价
当var存在,并且是一个非空非零的值时返回 false 否则返回 true.

以下的东西被认为是空的:

“” (空字符串)
0 (作为整数的0)
0.0 (作为浮点数的0)
“0” (作为字符串的0)
null
false
array() (一个空数组)
$var; (一个声明了,但是没有值的变量)

var_dump(empty('  '));//bool(false)
var_dump(empty(''));//bool(true)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值