当前位置:  开发笔记 > 编程语言 > 正文

开关语句PHP中的完全匹配(带有类型检查)

如何解决《开关语句PHP中的完全匹配(带有类型检查)》经验,为你挑选了2个好方法。

刚刚发现一种奇怪的情况,我们只需要switch在完全相同的匹配(具有精确类型)上运行语句。请考虑以下情况:

$value = "";

switch ($value) {
    case 0:
        echo "Zero";
        break;

    case 1:
        echo "One";
        break;

    case "":
        echo "Empty";
        break;

    default:
        echo "None";
        break;
}

这将echo “零”设置为我要echo “清空”的位置。这可以用某种方式处理switch语句吗?还是我只能if...elseif...else===运算符使用?



1> jbafford..:

PHP的switch语句已记录为使用松散比较。如果您需要完全匹配,那么不幸的是,最好的选择是对使用单独的if / else测试===

一种替代方法是类似于

switch(true) {
    case $value === 0:
        //...
        break;
}

但这与一系列if-else语句几乎相同,但具有更多的键入和缩进。



2> Anik Islam A..:

这样尝试

$value = "";

switch (true) {
    case ($value === 0):
        echo "Zero";
        break;

    case ($value === 1):
        echo "One";
        break;

    case ($value === ""):
        echo "Empty";
        break;
}

DEMO

推荐阅读
雯颜哥_135
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有