PHP中switch和ifelse有什么区别
发表于:2025-02-07 作者:千家信息网编辑
千家信息网最后更新 2025年02月07日,PHP中switch和ifelse有什么区别,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。PHP的switch和ifelse谁更快?
千家信息网最后更新 2025年02月07日PHP中switch和ifelse有什么区别
PHP中switch和ifelse有什么区别,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
PHP的switch和ifelse谁更快?
对于多个if条件判断的情况下,我们使用switch来代替ifelse对于代码来说会更加的清晰明了,那么他们的效率对比呢?从PHP手册中发现有人已经对比过了,自己也用他的代码进行了实验:
$s = time();for ($i = 0; $i < 1000000000; ++$i) { $x = $i % 10; if ($x == 1) { $y = $x * 1; } elseif ($x == 2) { $y = $x * 2; } elseif ($x == 3) { $y = $x * 3; } elseif ($x == 4) { $y = $x * 4; } elseif ($x == 5) { $y = $x * 5; } elseif ($x == 6) { $y = $x * 6; } elseif ($x == 7) { $y = $x * 7; } elseif ($x == 8) { $y = $x * 8; } elseif ($x == 9) { $y = $x * 9; } else { $y = $x * 10; }}print("if: " . (time() - $s) . "sec\n");$s = time();for ($i = 0; $i < 1000000000; ++$i) { $x = $i % 10; switch ($x) { case 1: $y = $x * 1; break; case 2: $y = $x * 2; break; case 3: $y = $x * 3; break; case 4: $y = $x * 4; break; case 5: $y = $x * 5; break; case 6: $y = $x * 6; break; case 7: $y = $x * 7; break; case 8: $y = $x * 8; break; case 9: $y = $x * 9; break; default: $y = $x * 10; }}print("switch: " . (time() - $s) . "sec\n");
通过1000000000次的循环并在每个判断条件中都加入了运算操作后,我们发现结果是switch的效率更高,运行速度更快,在我的电脑上的结果是:
// if: 301sec// switch: 255sec
虽然switch的效率更高一些,但也有需要注意的地方,首先,判断值只能是数字、浮点数或者是字符串。其次,每个判断都是普通的==判断,也就是说,下面的判断结果并不一定是你相像的结果:
$string = "2string";switch ($string) { case 1: echo "this is 1"; break; case 2: echo "this is 2"; break; case '2string': echo "this is a string"; break;}// this is 2
没错,依然是==比较时的类型强转问题,string和int值比较时强转为了int类型,"2string"强转的结果正是2。因此,在使用switch的时候,应该保证比较值和每个case的类型一致,否则就可能出现不可预计的错误。
参考代码:https://github.com/zhangyue0503/dev-blog/blob/master/php/201911/source/PHP%E7%9A%84switch%E5%92%8Cifelse%E8%B0%81%E6%9B%B4%E5%BF%AB%EF%BC%9F.php
关于PHP中switch和ifelse有什么区别问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注行业资讯频道了解更多相关知识。
结果
问题
代码
效率
类型
更多
更快
条件
帮助
解答
易行
普通
相像
一致
简单易行
也就是
也就是说
内容
地方
多个
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
远程访问软件开发的目的
java数据库连接工具类
网络安全的警察怎么画
网络安全管理方针
ppoe服务器的路由器
服务器进程在哪查看
如何查看db2数据库的版本
数据库 测试方案
看板软件开发
管家婆输入正确服务器
数据库没开启sa怎么连接
外资银行软件开发待遇
三部委印发网络安全管理
书店数据库系统的需求分析
梦幻服务器登录
网络安全为网络强国建设
科莱服务器默认管理地址
传统的网络安全防范措施
软件开发专业知识深度
国内服务器管理软件有哪几款
东方云科网络技术
护苗网络安全第1
嘉兴企业网络安全准入控制系统
五大行软件开发总部都在哪里
git删除服务器的提交记录
服务器整理卡
服务器地址要怎么写
株洲提供软件开发服务
数据库应用窗体
leanengine服务器