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"不是内部或外部命令,也不是可运行的程序或批量处理文件
在执行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() 函数,做练习的时候,为啥写中文就没输出结果

请问php中$c=(-3)^3; echo $c;会输出多少?为啥?

以下Java代码执行结果是啥,请详细分析为啥?