草庐IT

Switch-Case

全部标签

php - 具有多个执行相同代码的 case 的 switch 语句

我有以下代码:目前输出:oneortwo但显然我希望代码返回三或四。那么对于多个case语句返回相同代码的正确方法是什么? 最佳答案 不可能。case项必须是VALUES。您有表达式,这意味着对表达式进行求值,并将该表达式的结果与switch()中的值进行比较。这意味着你已经有效地得到了switch(...){caseTRUE:...caseTRUE:...}您不能在一个案例中使用多个值。但是,您可以使用“fallthroughsupport”:switch(...){case'one':case'two':return'oneor

php - 如何避免大的 switch 语句?

我有一个内部应用程序,其中一个函数包含太多switchcase。这是在php中开发的。这个特定的函数用于将更改写入数据库并保留单个字段值的历史记录。所以它所做的是为每个领域都有一个案例,因为不同的领域需要应用不同的东西。switch($item){case'item1':do_something();case'item2':do_something_different():}在这种情况下是否有可遵循的设计模式。每个项目的功能看起来也不那么适合future。更新:pastebinlink 最佳答案 这不是一个好的功能。应该是三个函数,

php - 是 php switch 语句错误吗?

我有问题想知道答案,为什么下面的代码会打印出Anotdefault?$i=0;switch($i){case'A':echo"iequalsA";//willprinteditbreak;case'B':echo"iequalsB";break;case'C':echo"iequalsC";break;default:echo"iequalsother";}谁能告诉我为什么?我真的不明白。我的PHP版本是5.2.17泰克斯。 最佳答案 这种比较正在发生:0=='A'发生的事情是PHP将字符串转换为整数。这导致字母A变为零,因为它不代

php - 递归地将数组键从 underscore_case 转换为 camelCase

我不得不想出一种方法,将使用下划线(underscore_case)的数组键转换为驼峰式。这必须以递归方式完成,因为我不知道哪些数组将被提供给该方法。我想到了这个:privatefunctionconvertKeysToCamelCase($apiResponseArray){$arr=[];foreach($apiResponseArrayas$key=>$value){if(preg_match('/_/',$key)){preg_match('/[^_]*/',$key,$m);preg_match('/(_)([a-zA-Z]*)/',$key,$v);$key=$m[0].u

php - 如何简化这个php switch语句?

我想改变这个://useappropiatelang.xx.phpfileaccordingtothevalueofthe$langswitch($_SESSION['lang']){case'en':$lang_file='lang.en.php';break;case'es':$lang_file='lang.es.php';break;case'zh-tw':$lang_file='lang.zh-tw.php';break;case'zh-cn':$lang_file='lang.zh-cn.php';break;default:$lang_file='lang.en.php'

php 使用 switch 不间断;

我的开关有什么问题?现在结果:less=equality!=no'tequality应该是这样的:';case$page>123:echo'>less';case$page==99:echo'=equality';case$page!=99:echo'!=no\'tequality';}?> 最佳答案 在您的switch语句中,您将数字与bool值进行比较。让我们来看第一个案例$page是true,所以进行的比较是99==true这是true根据http://docs.php.net/language.types.type-jugg

php - MSSQL WHERE 子句中的 CASE - odbc 错误

在我的PHPWeb应用程序中,我试图完善逻辑,即用户定义的值组装一个Transact-SQL查询以过滤该值。然后使用ODBC驱动程序执行查询。复杂的是过滤只会在派生字段上进行。除非派生字段是使用CASE表达式创建的字段,否则这绝对可以正常工作。因此,例如,我有一个派生字段,如下所示:CASEWHEN[text_result]ISNOTNULLTHEN[text_result]ELSECASEWHEN[last_event]=1THEN'processed'ELSE'unprocessed'ENDEND如果我尝试使用值“未处理”来过滤它,那么最终组合的查询显然类似于以下内容:SELECT

java - 即使使用 case 语句,SUM 结果值也会重复

我使用posgresql作为数据库,使用java作为带hibernate的编程语言。我的问题是这个查询:selectcast(sum(CASEWHENp.nropack>0THENp.nropackELSE0END)asinteger),cast(sum(CASEWHENp.nropack结果我得到:sum;sum;fechareg30;-15;"2012-11-15"但是当我在我的程序中使用它时:publicArrayListlistarKardex(intciud){ciud=105;ArrayListlistaKardex=newArrayList();Sessionsessio

java - 用JavaPoet生成switch语句

我正在研究用Java编写的注解处理器。我正在使用JavaPoet生成一些代码行。我必须生成一个“switch”语句。现在我正在使用以下代码:MethodSpec.BuildermethodBuilder=MethodSpec.methodBuilder("parseOnXml").addAnnotation(Override.class).addModifiers(Modifier.PUBLIC).addParameter(typeName(XmlBinderContext.class),"context").addParameter(typeName(XmlWrapperParser

java - Maven 和代码指标 : check for existence of a test case for each class

在Maven中是否可以使用某些东西来自动执行这种检查?我看到了checkstyle和PMD,但没有找到此功能。基本上,如果有类A而没有ATestCase,我希望构建失败。我知道,这不是一个严格的检查,可以通过只创建类轻松绕过,但目前这就足够了。 最佳答案 你在找什么正如JensPiegsa指出的那样,您正在寻找的是一种可以显示测试覆盖率的工具,换句话说,就是您测试使用的代码百分比。它允许您以比(至少按类测试)更可靠的方式查看您的代码测试了多少。您可以使用Cobertura,它很好地集成在Maven中:http://mojo.code