记录一次有趣的PHP程序BUG【php】

原创
2020/11/13 12:03
阅读数 282

1.逻辑IF判断一般有:

<?php

if (true) {
    var_dump(true);
}
?>

2.有时候业务中用到:(我们都知道以下结果会输出15)

<?php

$age = 15; 
if ($age > 10 && $age < 25) {
    var_dump($age);
}
?>

3.如果参数存在,就进行赋值,相信不少人有这种写法:

判断$age存不存在是通过赋值的方式进行,如果赋值结果为false,就说明不存在

<?php

$age = ''; 
if ($a = $age) {
    var_dump($a);
}
?>

4.直到有一天:我要拿到$uid的值

<?php

$personId = ''; 
$userId = '123';
if ($uid = $personId || $uid = $userId) {

}
var_dump($uid);
?>

那你们说,$uid可以等于123吗?很抱歉,它不能,$uid的结果会是true,如果查询mysql的话,会$uid=1,也就是一直获取的是uid=1的用户

为什么呢,因为先计算了||的值为true,然后true又赋值给了$uid。

5.假如有这样的一个问题,你说$age结果会一样吗?

<?php
$age = 5;
$age = 5 && 7;
var_dump($age);
$age = 5 and 7;
var_dump($age);
?>

 

展开阅读全文
php
加载中

作者的其它热门文章

打赏
0
0 收藏
分享
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部