源码哥,靠谱的网站源码下载站 帮助 每日签到

源码哥

广告位《资讯详情页横幅-1150*?》

PHP布尔类型:Boolean

  • 发布者:源码哥 时间:2022-09-16 09:04 阅读:158
  • 扫一扫,手机访问
广告位《资讯详情页摘要上方横幅-828*?》
摘要:这是最简单的类型。布尔表示真或假真假值。语法要指定布尔,请使用常量真或假。两者都不区分大小写。<?php $foo = True; // 设置 $foo 为 TRUE ?>通常,操作员返回的布尔值传递给控制流。<?php // == 是一个操作符,它检测两个变量是否相等,并返回一个布尔值 if ($action&

这是最简单的类型。布尔表示真或假真假值。


语法


要指定布尔,请使用常量真或假。两者都不区分大小写。


<?php
$foo = True; // 设置 $foo 为 TRUE
?>


通常,操作员返回的布尔值传递给控制流。


<?php
// == 是一个操作符,它检测两个变量是否相等,并返回一个布尔值
if ($action == "show_version") {
    echo "The version is 1.23";
}
// 这样做是不必要的...
if ($show_separators == TRUE) {
    echo "<hr>
";
}


// ...因为可以使用下面这种简单的方式:
if ($show_separators) {
    echo "<hr>
";
}
?>


转换为布尔值


使用“布尔”或“布尔”强制值显式转换为布尔。但是,如果运算符、函数或流控制结构假定为布尔参数,则值会自动转换,因此通常不需要转换。


以下值在转换为布尔时被视为假。


boolean false本身


整数值0(零)


浮点值0.0(零)-0.0(零)


空字符串和字符串“0”


不包含元素的数组


特殊类型空值(包括尚未分配值的变量)


从没有属性的空元素(即没有子节点和属性的元素)创建SimpleXML对象。


所有其他值均为真(包括资源和NAN)。


注意


-1与其他非零值(正或负)一样被视为真。


<?php
var_dump((bool) "");        // bool(false)
var_dump((bool) "0");       // bool(false)
var_dump((bool) 1);         // bool(true)
var_dump((bool) -2);        // bool(true)
var_dump((bool) "foo");     // bool(true)
var_dump((bool) 2.3e5);     // bool(true)
var_dump((bool) array(12)); // bool(true)
var_dump((bool) array());   // bool(false)
var_dump((bool) "false");   // bool(true)
?>


啊,是的,布尔值-设置(TRUE)或未设置(FALSE)的位值。现在,我们有了64位编译器,使用整数变量表示布尔值,有*1*值为假(零)和2**64-1值为真(其他所有值)。在这个宇宙中似乎有更多的真理,但虚假可以胜过任何真实的东西。。。


PHP将字符串处理为布尔值几乎是正确的-空字符串为假,非空字符串为真-只有一个例外:包含单个零的字符串被视为假。为什么?如果*任何*非空字符串将被视为FALSE,为什么*只有*一个零?为什么不“FALSE”(最好不区分大小写),或“0.0”(小数点后多少位),或“NO”(同样不区分大小大小写),或者?


“正确”的设计应该是任何非空字符串都是真的-句点,故事结束。相反,对于经验不足的程序员来说,还有另一个需要注意的问题,在这么晚的时候修复语言的设计错误无疑会破坏很多东西,因此完全不可能进行纠正。


说到陷阱,请考虑以下代码序列:


<?php
$x=TRUE;
$y=FALSE;
$z=$y OR $x;
?>


$z是真还是假?


在这种情况下,$z将为FALSE,因为上述代码等效于<?php($z=$y)或$x?>而不是<?php$z=($y或$x)?>正如预期的那样-因为OR运算符的优先级低于赋值运算符。


另一方面,在该代码序列之后:


<?php
$x=TRUE;
$y=FALSE;
$z=$y || $x;
?>


$z将如预期的那样为真,因为||运算符的优先级高于赋值:代码相当于$z=($y或$x)。


这就是为什么在使用OR运算符的表达式周围没有显式括号的情况下,永远不应该使用OR运算符。


JavaScript开发人员注意:


在PHP中,空数组求值为false,而在JavaScript中,空阵列求值为true。


在PHP中,可以将空数组测试为<?php if(!$stuff);?>这在需要测试数组长度的JavaScript中不起作用。


这是因为在JavaScript中,数组是一个对象,虽然它可能没有任何元素,但它仍然被视为某种东西。


对于经常在两种语言中工作的年轻球员来说,这只是一个陷阱。


相关连接: 网站源码 企业网站源码

  • 全部评论(0)
上一篇:PHP整型:Integer
下一篇:PHP的数据类型
广告位《资讯详情页最新发布上方横幅-828*?》
最新发布的资讯信息
【网站开发|HTML】html编码设置(2022-10-17 11:26)
【网站开发|HTML】html添加注释的方法(2022-10-17 11:25)
【网站开发|HTML】html元素(2022-10-17 11:23)
【网站开发|HTML】html属性介绍(2022-10-17 11:22)
【网站开发|HTML】html标签说明(2022-10-17 11:21)
【网站开发|HTML】html的基本结构(2022-10-17 11:20)
【行业资讯|】如何学习好网站前端开发?(2022-10-14 14:53)
【网站开发|JavaScript】如何轻松学习JavaScript(2022-10-14 14:26)
【网站开发|node.js】NodeJS Service Docker映像终极优化指南(2022-10-14 14:14)
【网站开发|JavaScript】后端response响应返回图像,前端怎么下载图片?(2022-09-23 10:17)
联系我们
Q Q:472206683
微信:472206683
邮箱:472206683@qq.com
时间:09:00 - 24:00
联系客服
售前咨询 网站搭建 技术支持 联系客服
18639176864
手机版
手机版二维码
扫一扫进手机版
返回顶部