您好,我有以下代码,这让我感到困惑。这个案子怎么打?

<?php

  $concept = '0';

    switch ($concept) {

        case ($concept > '0'):
            $score  = 'Y';
            break;

    }


?>

最佳答案

来自 switch 文档:



Check the falsy-ness for '0' ,这太糟糕了,我知道。您的案例评估为 false ,正如您在链接的 tbl 中看到的那样, ('0' == false) === true

我会将您的 switch 语句更改为:

switch(true)
{
    case ($concept >'0'):
        echo 'Impossible';
    break;
}

另外,就像文档说的那样:switch 是一个类似循环的结构,它执行松散的比较。您不能自己选择比较运算符。如果你想根据一组 case 检查 $concept 的值,你必须写:
switch($concept)
{
   case '0': echo 'a zero string'; break;
   case '1': echo 'a 1 concept'; break;
}

关于字符串类型的 PHP 0 > 那么字符串类型的 0 等于真吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17588487/

10-11 18:08