[转帖]php使用位移运算提高性能_Android, Python及开发编程讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  Android, Python及开发编程讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 3269 | 回复: 0   主题: [转帖]php使用位移运算提高性能        下一篇 
huarui.ren
注册用户
等级:上尉
经验:692
发帖:56
精华:0
注册:2013-11-5
状态:离线
发送短消息息给huarui.ren 加好友    发送短消息息给huarui.ren 发消息
发表于: IP:您无权察看 2013-11-7 17:24:51 | [全部帖] [楼主帖] 楼主

开发实践中,经常遇到这种情况:

某事件有N(N>=3)种状态,每种状态下都有不同的输出。

以前都是硬编码,一眼望去,这种方法看不出弊端,并且只要你了解php的基本语法,任何人都能编写出来,是一种快速的解决方案。

view source
print?
01if($start> $_SERVER['REQUEST_TIME'])
02{
      03$status= 0;
04}elseif(($start< $_SERVER['REQUEST_TIME']) && ($_SERVER['REQUEST_TIME'] < $end))
05{
      06$status= 1;
07}elseif($_SERVER['REQUEST_TIME'] > $end)
08{
      09$status= 2;
10}
11
12if( $status== 0 )
13{
      14echo'statusA';
15}
16elseif( $status== 1)
17{
      18echo'statusC';
19}
20elseif( $sattus== 2)
21{
      22echo'statusB';
23}


今天,又碰到这种情况,停下来思考下,找到一种改进的输出方法,拿出来与大家分享,也希望能得到高人的指点。

view source
print?
1$status= ($start< $_SERVER['REQUEST_TIME']) << ($_SERVER['REQUEST_TIME'] < $end);
2
3$html= array(
40 => 'statusA',
52 => 'statusB,
61 => 'statusC',
7);
8echo$html[$status];


使用条件进行位移运算,把不同状态下需要输出的结果按照位移运算的结果进行编号,这样就可以直接拿位置结果在数组里定位内容并输出。




赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论