php中false的作用,PHP中false 和0的问题

这篇博客探讨了PHP中布尔值false和整型值0在逻辑判断中的等价性。在if-else结构和三目运算中,0被视为false,而1和其他非0值被视为true。文章提醒开发者在处理0和false时需要注意,例如在性别标识场景中。此外,empty函数在遇到0时会返回true,这可能导致意外的结果。建议使用1和2代替0来避免混淆,并通过(int)$p强制转换布尔值为整型。
摘要由CSDN通过智能技术生成

最近工作中遇到的关于fasle 和0 的问题。

直接看代码:

?php

/**

* 关于0值和false的测试

* PHP 是类型宽松的语言,这意味着会 将布尔值 false 和整型值 0 视为相同

* @var unknown_type

*/

$p = 0;

if($p)

echo 'aa__';

else

echo 'bb__';

$ptest = $p?$p:'';

var_dump($ptest);

var_dump(empty($p));

var_dump(trim($p));

var_dump($a=0);

echo '


';

//测试2

$p = 1;

if($p)

echo 'cc__';

else

echo 'dd__';

$ptest = $p?$p:'';

var_dump($ptest);

var_dump(empty($p));

测试结果:

a0f723cac96626ece24e2d5189266fce.png

PHP中false 和0的问题

总结:

也就是在if else判断里面 0等价于布尔值false,1或者其他非0值都将作为布尔值true,引申:在三目运算(这个很隐蔽啊,不容易意识到)中,或者wile do 结构里也是一样。

empty 遇到0值会把0当作true,遇到1或者其他非0值 会做返回fasle

常用场景:

利用0标识男 1表示女的时候注意了,建议使用 1,2标识

也可以强制把布尔值转化为int ,转换:(int)$p

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值