PHP各类型变量与布尔值之间的转换

本文探讨了PHP中数值、字符串、引用和数组类型变量与布尔值之间的转换规则。当数值为0、字符串为空、引用值为null或数组为空时,这些变量等于布尔值false,否则等于true。通过实验代码展示了具体的转换实例,如空数组和不存在的数组元素转化为false。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

经常看到PHP代码中拿各种类型的变量来做布尔值用,故写此文章理顺各种类型变量和布尔值之间的转化规律,总结如下:

  • 对于数值类型,值为0等于布尔值false,其他值等于true。
  • 对于字符串类型,字符串为空,即长度为0时,等于布尔值false,其他情况则等于true。
  • 对于引用类型,值为null则等于布尔值false,否则等于true。
  • 对于数组类型,当数组为空,即大小为0时,等于布尔值false,其他情况则等于true。
  • 数组类型用下标或者key取值时,若对应的下标或者key不存在,都会取得值null,其布尔值参考第3条。

实验代码如下:

$i = 0;
if ($i) {
    echo "i is not 0</br>";
} else {
    echo "i is 0</br>";
}

$i = -1;
if ($i) {
    echo "i is not 0</br>";
} else {
    echo "i is 0</br>";
}

$i = 1;
if ($i) {
    echo "i is not 0</br>";
} else {
    echo "i is 0</br>";
}

$v = null;
if ($v) {
    echo "v is not null</br>";
} else {
    echo "v is null</br>";
}

$v = new Data_Live_Configure();
if ($v) {
    echo "v is not null</br>";
} else {
    echo "v is null</br>";
}

$v = "";
if ($v) {
    echo "v is not empty string</br>";
} else {
    echo "v is empty string</br>";
}

$v = " ";
if ($v) {
    echo "v is not empty string</br>";
} else {
    echo "v is empty string</br>";
}

$v = "false";
if ($v) {
    echo "v is not empty string</br>";
} else {
    echo "v is empty string</br>";
}

$arr = array();
if ($arr) {
    echo "arr is not empty</br>";
} else {
    echo "arr is empty</br>";
}

$arr[1] = "false";
if ($arr) {
    echo "arr is not empty</br>";
} else {
    echo "arr is empty</br>";
}

if ($arr[0]) {
    echo "arr has element at index 0</br>";
} else {
    echo "arr do not has element at index 0</br>";
}

if ($arr['hello']) {
    echo "arr has value of key 'hello'</br>";
} else {
    echo "arr do not has value of key 'hello'</br>";
}

输出结果为:

i is 0
i is not 0
i is not 0
v is null
v is not null
v is empty string
v is not empty string
v is not empty string
arr is empty
arr is not empty
arr do not has element at index 0
arr do not has value of key ‘hello’

欢迎大家来我的个人公众号一起交流学习
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

番茄大圣

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值