老师们总是教导我们写程序不要嵌套太多的循环或是IF层次,尤其是if,else能不用则不用,这里介绍几个小技巧可以替换掉一些简单的if,else

1.switch

如:

switch ($a)
{
  case 1 :
    $this->print('分支1');
    return ;
  case 2 :
    $this->print('分支2');
    return ;
  case 3 :
    $this->print('分支3');
    return ;
}

等同于:

if($a == '1')
{
  $this->print('分支1');
  return ;
}
elseif($a == '2')
{
  $this->print('分支2');
  return ;
}
elseif($a == '3')
{
  $this->print('分支3');
  return ;
}

此结构可以用来精巧的代替某些冗长的if/elseif结构,它根据switch中的参数值,匹配(使用正常的“==”,而不是全等)下面的每一个case,当第一次匹配成功后,则忽略以后的case,一直执行直到程序末尾,因此一般会在每个case语句后加上break,让其只执行所匹配的case后的语句。

2. 巧用逻辑“&&” 和“||”

PHP在执行“&&”和“||”时,为了节约运算时间,当前半部分内容已经可以得出结果时,将不再去评估后半部分语句(许多其他语言也有类似特性,如c),
因此一个入

if($a == 1)
{
    $b=0;
}
可以简单写成 $a == 1 && $b=0;
同样:
if($a != 1)
{
    $b=0;
}
可以写成 $a == 1 || $b=0;

3.唯一的三元运算符:“?:”

这是PHP中最精致的运算符,格式如下:
expr?expr1 :expr2
这个运算符计算expr的值,并确认其是否为真,为真,则表达式的值就由expr1确定,否则就由expr2确定,例如:
一个这样的IF/ELSE
if($a==1)
  $b=0;
else
  $b=1;
可以替换成下面格式:

$b = ($a==1)?0:1;

以上只是本人经常用到的一些小技巧,相信还有更多的一些替换办法是本人不知道或是不常用的,欢迎补充

请给这篇日志评个分吧!

62 分数: 6.8/10 (5 votes 票)

工作 » LAMP | 评论(0) | 引用(0) | 阅读(763)
发表评论
 网址
 电邮
  密码 游客无需密码
 昵称  *  [注册]
               

 
表情
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
打开HTML
打开UBB
打开表情
隐藏
记住我