老师们总是教导我们写程序不要嵌套太多的循环或是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;
以上只是本人经常用到的一些小技巧,相信还有更多的一些替换办法是本人不知道或是不常用的,欢迎补充
请给这篇日志评个分吧!
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;
以上只是本人经常用到的一些小技巧,相信还有更多的一些替换办法是本人不知道或是不常用的,欢迎补充
请给这篇日志评个分吧!
发表评论


发个去年写的一个文件上传
"==&quo
