php中switch以下输出结果为啥是1 不是0?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php中switch以下输出结果为啥是1 不是0?相关的知识,希望对你有一定的参考价值。
$a = 0;
switch ($a)
case $a >= 0:
echo 0;
break;
case $a >= 10:
echo 1;
break;
default:
echo 2;
break;
switch后面括号里的东西(这里的东西可以是表达式也可以是一个值) 与case 后面的东西(这里的东西可以是表达式也可以是值)进行比较,如果相等就能进去该case,如果不相等则不能进入该case
然后看你的代码
首先你的switch后面括号里的东西是$a,也就是0,看第一个case后面是$a>=0,这是一个表达式,因为$a=0,所以$a>=0这个表达式是true,然后拿0和true进行比较,显然0是不等于true的,所以第一个case是走不进去的
在看第二个case $a>=10 这个表达式是false,然后拿0和false比较,显然0等于false,所以是可以走进第二个case的追问
原来是这样
追答记得采纳
参考技术A $a>=0 的结果是true$a>=10的结果是false
而因为php是弱语言,可以将false看作0,也就是说在PHP中0=false,
所以当a=0时输出的1 参考技术B 不知道追问
好直白的回答
追答🙃🙃🙃
追问发的啥
追答没啥
参考技术C $a>=0 是 true$a >= 10 是 false
php里 1=true 0=false
你这相当于
switch($a)
case true:
break;
casr false:
break;
追问
嗯,还有这种方法
本回答被提问者采纳为啥我在win10下输入cmd指令chkdsk会是以下结果??求助大神
Microsoft Windows [版本 10.0.19043.1889]
(c) Microsoft Corporation。保留所有权利。
C:\Users\user>chkdsk
'chkdsk' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
C:\Users\user>chkdsk c
'chkdsk' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
C:\Users\user>chkdsk d:
'chkdsk' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
C:\Users\user>
在执行chkdsk之前先执行 cd C:\windows\system32
再接下来执行你那句就可以了
直接右击我的电脑,属性---高级-----环境变量-----用户变量列表框里有个PATH 编辑更改为 C:\windows\system32 参考技术A win10的system32目录下应该是有 chkdsk.exe 这个文件的。
你输入path回车看看是不是环境变量没有设置,如果没有的话就加上 path c:\windows\system32 ;%PATH%
以上是关于php中switch以下输出结果为啥是1 不是0?的主要内容,如果未能解决你的问题,请参考以下文章
php中3个小数的计算,如134.7-52.5 - 82.2,为啥结果不是0而是一个奇怪的科学计数法?
这个PHP流程判断switch语句哪里出错了?为啥不执行default后面的语句
在Dev c里运行成功并输出结果的 却在vs2010里不显示结果是为啥?
我 用PHP strpos() 函数,做练习的时候,为啥写中文就没输出结果