已有83人关注
有点看不明白
发表在PHP答疑区 2018-01-04
是否精华
版块置顶:

这几道题看不懂。

echo count(“abc”); 输出什么?    为什么结果是1

echo 0 == '';此句将打印出?           为什么结果是1


if ($a = 100 && $b = 200) {
     var_dump($a, $b);
}

为什么正确答案是$a=true $b=200

分享到:
精彩评论 2
andy
学分:2118 LV10
TA的每日心情
继续努力
2017-02-06 23:42:34
2018-01-05
沙发

读者你好:

1. 首先需要知道count()返回值:

手册中说明如下:

返回 var 中的单元数目。 如果 var 不是数组类型或者实现了 Countable 接口的对象,将返回 1,有一个例外,如果 var 是 NULL 则结果是 0。 


2. echo 0 == ''; 其实echo 输出的是这个表达式的结果,这个结果是一个布尔值,因为0==''为真,所以输出1。此外0==false或0==null 都为真,都会输出1。建议使用var_dump()输出,可以查看返回的数据类型。


3. 这道题考的是操作符优先级,&&(并且符号)的优先级高于 =(赋值符号),所以会先运算  && 两边的值或表达式 ,但是$b 没有值,所以先执行$b=200 这个表达式,这个表达式值为true, 100 $$ true 结果为true,再将这个最终结果赋值给$a。


皓月追梦赤子
学分:2976 LV11
2018-01-06
板凳
多谢老师解答!
首页上一页 1 下一页尾页 2 条记录 1/1页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照