PHP-带异常的开关情况
我想知道,即使案例引发异常,我是否应该在开关中包含PHP-带异常的开关情况,php,switch-statement,Php,Switch Statement,我想知道,即使案例引发异常,我是否应该在开关中包含break switch ($key) { case self::ABC: case self::CBA: if (!is_string($key)) { throw new Exception('Well.. this should be a string my friend'); } break; } 我到休息时间了吗?我不这样认为,为何我要把它包括在内
break
switch ($key) {
case self::ABC:
case self::CBA:
if (!is_string($key)) {
throw new Exception('Well.. this should be a string my friend');
}
break;
}
我到休息时间了吗?我不这样认为,为何我要把它包括在内?它有意义吗?如果
self::CBA
是一个字符串,则不会抛出异常,代码将达到中断状态。如果case
是开关中的最后一种情况,则可能不需要中断,因为开关将以任何方式结束,但最好只添加break
,而不是不添加它,这是一行代码,可以为您节省大量执行不打算执行的代码的麻烦。我深知这一点
通过将break添加到所有案例中,您可以在将来重新安排案例而不会出现任何问题,并且您还可以养成每次编写switch语句时都编写break的习惯(这是一个好习惯)。我希望它能回答您的问题。那么,如果没有抛出异常(即,密钥是字符串),该怎么办?它只是用于验证数组。如果param是一个字符串,它将被抛出,稍后在我的方法中返回true。这是整个
switch
语句还是一个缩写示例。如果抛出异常,代码将不会到达断点,但如果key是字符串,则代码到达断点。这是多余的,除非self::ABC/self::CBA:
是一个数值。如果它们是foo
和bar
那么$key
显然是一个字符串。