我想将同一个变量(或表达式)与许多不同的值进行比较,并根据它等于哪个值返回不同的值。我想这样做inlineorshorthand,就像使用if语句一样。采取以下switch声明:switch($color_name){case'red':case'blue':$color_type=handlePrimaryColor($in);break;case'yellow':case'cyan':$color_type=handleSecondaryColor($in);break;case'azure':case'violet':$color_type=handleTertiaryColor
这是我的示例代码:";echosystem('php--version');这是输出(在codepad.org上测试-结果相同):addPHP5.3.6-13ubuntu3.6withSuhosin-Patch(cli)(built:Feb11201203:26:01)Copyright(c)1997-2011ThePHPGroupZendEnginev2.3.0,Copyright(c)1998-2011ZendTechnologiesZendEnginev2.3.0,Copyright(c)1998-2011ZendTechnologies这里有什么问题吗?
请看下面的代码functionGetAreaName($AreaCode){switch($AreaCode){case201:return'NewJersey';case202:return'Washington';//thisgoesontillcase999:return'';}}比方说,如果AreaCode是998那么它必须经历很多情况!我们如何优化这个功能?(不使用数据库。)我正在考虑构建一个数组并对它进行二进制搜索?但这意味着每次调用函数时都会重建数组?我们如何构建一次数组,缓存它并在每次调用此函数时重新使用? 最佳答案
我有以下代码:目前输出:oneortwo但显然我希望代码返回三或四。那么对于多个case语句返回相同代码的正确方法是什么? 最佳答案 不可能。case项必须是VALUES。您有表达式,这意味着对表达式进行求值,并将该表达式的结果与switch()中的值进行比较。这意味着你已经有效地得到了switch(...){caseTRUE:...caseTRUE:...}您不能在一个案例中使用多个值。但是,您可以使用“fallthroughsupport”:switch(...){case'one':case'two':return'oneor
我有一个内部应用程序,其中一个函数包含太多switchcase。这是在php中开发的。这个特定的函数用于将更改写入数据库并保留单个字段值的历史记录。所以它所做的是为每个领域都有一个案例,因为不同的领域需要应用不同的东西。switch($item){case'item1':do_something();case'item2':do_something_different():}在这种情况下是否有可遵循的设计模式。每个项目的功能看起来也不那么适合future。更新:pastebinlink 最佳答案 这不是一个好的功能。应该是三个函数,
我有问题想知道答案,为什么下面的代码会打印出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变为零,因为它不代
我不得不想出一种方法,将使用下划线(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
我想改变这个://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'
我的开关有什么问题?现在结果: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
在我的PHPWeb应用程序中,我试图完善逻辑,即用户定义的值组装一个Transact-SQL查询以过滤该值。然后使用ODBC驱动程序执行查询。复杂的是过滤只会在派生字段上进行。除非派生字段是使用CASE表达式创建的字段,否则这绝对可以正常工作。因此,例如,我有一个派生字段,如下所示:CASEWHEN[text_result]ISNOTNULLTHEN[text_result]ELSECASEWHEN[last_event]=1THEN'processed'ELSE'unprocessed'ENDEND如果我尝试使用值“未处理”来过滤它,那么最终组合的查询显然类似于以下内容:SELECT