无论如何,要使下面的代码仍然使用开关,b而不返回它,是a吗?谢谢!
b
a
$var = 0; switch($var) { case NULL : return 'a'; break; default : return 'b'; break; }
当然,如果使用if语句,您将像这样:
$var = 0; if($var === NULL) return 'a'; else return 'b';
但是对于更复杂的示例,这变得很冗长。
抱歉,===根据switch()文档 ,您不能在switch语句中使用比较:
===
请注意,开关/外壳确实比较松散。
这意味着您必须提出解决方法。从松散的比较表 ,你可以利用的事实NULL == "0"是类型转换错误:
NULL == "0"
<?php $var = 0; switch((string)$var) { case "" : echo 'a'; break; // This tests for NULL or empty string default : echo 'b'; break; // Everything else, including zero } // Output: 'b' ?>