Best way to do a PHP switch with multiple values per case?(每种情况下使用多个值进行PHP切换的最佳方式是什么?)
本文介绍了每种情况下使用多个值进行PHP切换的最佳方式是什么?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
如何执行此PHP SWITCH语句?
还要注意,这些都是小得多的版本,我需要创建的%1将添加更多的值。
版本1:
switch ($p) {
case 'home':
case '':
$current_home = 'current';
break;
case 'users.online':
case 'users.location':
case 'users.featured':
case 'users.new':
case 'users.browse':
case 'users.search':
case 'users.staff':
$current_users = 'current';
break;
case 'forum':
$current_forum = 'current';
break;
}
版本2:
switch ($p) {
case 'home':
$current_home = 'current';
break;
case 'users.online' || 'users.location' || 'users.featured' || 'users.browse' || 'users.search' || 'users.staff':
$current_users = 'current';
break;
case 'forum':
$current_forum = 'current';
break;
}
更新-测试结果
我对10,000次迭代进行了一些速度测试,
时间1:0.0199389457703//IF语句
时间2:0.0389049446106//切换语句
时间3:0.106977939606//数组
推荐答案
对于具有未知字符串的任何情况,您需要找出它与一堆其他字符串中的哪一个匹配,唯一不会随着添加更多项而变慢的解决方案是使用数组,但将所有可能的字符串作为键。因此,您的交换机可以替换为以下交换机:
// used for $current_home = 'current';
$group1 = array(
'home' => True,
);
// used for $current_users = 'current';
$group2 = array(
'users.online' => True,
'users.location' => True,
'users.featured' => True,
'users.new' => True,
'users.browse' => True,
'users.search' => True,
'users.staff' => True,
);
// used for $current_forum = 'current';
$group3 = array(
'forum' => True,
);
if(isset($group1[$p]))
$current_home = 'current';
else if(isset($group2[$p]))
$current_users = 'current';
else if(isset($group3[$p]))
$current_forum = 'current';
else
user_error("$p is invalid", E_USER_ERROR);
这看起来不如switch()
干净,但它是唯一的快速解决方案,它不包括编写一个小的函数和类库来保持它的整洁。向数组添加项仍然非常容易。
这篇关于每种情况下使用多个值进行PHP切换的最佳方式是什么?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
沃梦达教程
本文标题为:每种情况下使用多个值进行PHP切换的最佳方式是什么?
基础教程推荐
猜你喜欢
- 在多维数组中查找最大值 2021-01-01
- mysqli_insert_id 是否有可能在高流量应用程序中返回 2021-01-01
- 在 PHP 中强制下载文件 - 在 Joomla 框架内 2022-01-01
- 通过 PHP SoapClient 请求发送原始 XML 2021-01-01
- 如何在 PHP 中的请求之间持久化对象 2022-01-01
- XAMPP 服务器不加载 CSS 文件 2022-01-01
- 在 Woocommerce 中根据运输方式和付款方式添加费用 2021-01-01
- WooCommerce 中选定产品类别的自定义产品价格后缀 2021-01-01
- Libpuzzle 索引数百万张图片? 2022-01-01
- 超薄框架REST服务两次获得输出 2022-01-01