php代替switch的方法,php中switch语句
小菜鸟请教个关于PHP的switch语句的问题.
你目前的做法不会报错,但是不够严谨。
看这样能不能满足你的需求。
?php
$i = 2142344;
$aa = '1234';
$bb = '1122';
$out = strtr(strval($i),$aa,$bb);
echo $out;
$tmp = str_split($out,2);
$out = implode(',',$tmp);
echo $out;
?
php编程题 将图中的 switch 语句换成 if…else 语句
?php
header('content-type:text/html;charset=utf8');
$D=date("D");
if($D=="Mon"){
echo "今天星期一br/";
}else if($D=="Tue"){
echo "今天星期二br/";
}else if($D=="Wed"){
echo "今天星期三br/";
}else if($D=="Thu"){
echo "今天星期四br/";
}else if($D=="Fir"){
echo "今天星期五br/";
}else if($D=="Sta"){
echo "今天星期六br/";
}else{
echo "今天放假br/";
}
?
自己多动手,多思考才会学好PHP,加油希望能帮到你。
小菜鸟请教个关于PHP的switch语句的问题
重复问的呀?
amp;lt;?php
$i = 2142344;
$aa = '1234';
$bb = '1122';
$out = strtr(strval($i),$aa,$bb);
echo $out;
echo 'amp;lt;bramp;gt;';
$tmp = str_split($out,2);
$out = implode(',',$tmp);
echo $out;
?amp;gt;
结果:
1121222
11,21,22,2
核心的几个函数解释:
strtr 将对应的字符串一一对应替换,不用循环判断
str_split 将字符串分隔为数组,第二个参数为分隔长度,默认为1
implode 将数组级联成字符串,第一个参数是级联符
根据你的要求,还是有一些东西要修改。
112122 应该要生成 11,12,21,12,22五个数吧?
$a = '112122';
$t = str_split($a);
$oo = '';
for($i=0;$icount($t)-1;$i++) {
????$oo .= $t[$i].$t[$i+1].',';
}
echo $oo;
这样应该就是最终的答案了。
使用命令对象代替switch语句的写法示例
这篇文章主要介绍了使用命令对象代替switch语句的写法示例,JS规范里面是禁止使用switch语句的,使用命令对象可以完美的解决这个问题,需要的朋友可以参考下
曾经有人说过,真正好的程序是没有if..else的,当然switch还不如if..else。JS规范里面是禁止使用switch的。
命令对象(command
object)就完美的解决了这个问题。
引用一篇国外的博客提到的:
JavaScript
有着良好的控制流程语句,这些语句往往用花括号包裹着。不过有个例外:switch
…
case
语句。switch
…
case
的奇怪之处在于你必须在每个
case
末尾加上关键字
break,以防止流程控制权穿越进入下一个
case
语句中。穿越是指让多条
case
执行的手法,当未遇见预期的
break
时,控制权就自动交到下一句
case
手中。然而,就如同分号与花括号一样,你很有可能会在不经意之间忘了写
break,当这发生时,后期的错误排查就比较痛苦,因为语句本身是没错的。因此,配对地写
case
…
break
是个好习惯。
我们通常讲,JavaScript
有着优雅的对象字面量与顶级函数,这些都使得特定的方法查询变的非常简单。为方法查询所创建的对象,我们称之为
活动对象(action
object)
或
命令对象(command
object),它被运用在许多软件设计模式中,包括强大的而有用的命令模式。
实例:
代码如下:
//
switch
方法
function
testSwitch(name)
{
switch
(name)
{
case
'1':
return
'hack';
break;
case
'2':
return
'slash';
break;
case
'3':
return
'run';
break;
default:
return
false;
break;
}
}
//
使用命令对象
function
testFn(name)
{
var
names
=
{
'1':
function()
{
return
'hack';
},
'2':
function()
{
return
'slash';
},
'3':
function()
{
return
'run';
}
};
if
(typeof
names[name]
!==
'function')
{
return
false;
}
return
names[name]();
}
//
测试结果
var
result1
=
testSwitch('1');
var
result2
=
testFn('2');
console.info(result1,
result2);
php除了if和switch判断还有其他吗?哪个效率高?
不管写什么语言的程序,一定会考虑到代码的运行效率问题。在查阅了一些资料后,switch与ifelse在不同的‘环境'下效率各有优胜。
当被判断的值是常量(固定不变的值)时,switch的运行效率比ifelse的运行效率高;
$changliang=3; // 变判断的值为常量
switch($changliang){
case 1:
echo '常量值为1';
break; // 跳出循环
case 2:
echo '常量值为2';
break;
case 3:
echo '常量值为3';
break;
}
2、当被判断值为变量,ifelse的运行效率高于switch,ifelse贯彻一判到底的方针,会从第一个条件开始判断,直到最后一个else,所以学会使用switch有好处;
?
$a = $_GET['a']; // 通过get传值后接值; 被判断的值
if($a=1){
echo '变量a的值为1';
}elseif($a=2){
echo '变量a的值为2';
}elseif($a=3){
echo '变量a的值为3';
}else{
echo '变量a的值为不知道';
}