我有以下代码比较!
function arr($part){
$partt=intval($part);
if($partt==1){
$url="x4";
}if($partt==2){
$url="x3";
}if($partt==3){
$url="x2";
}if($partt==4){
$url="x1";
}else{
// This always executes
echo $partt;
exit;
}
我试过以下
arr(1)
arr('1')
arr("1")
arr((1))
全部执行此
echo $partt;
exit;
这会回显1
但是如果$ part是1
那么为什么$url="x4";
没有执行以及为什么else
正在执行
答案 0 :(得分:2)
尝试else if
喜欢
if($partt==1){
$url="x4";
}else if($partt==2){
$url="x3";
}else if($partt ==3){
$url="x2";
}else if($partt==4){
$url="x1";
}else{
echo $partt;
exit;
}
echo $url;
exit;
答案 1 :(得分:0)
当$partt
不等于4
时,其他内容将始终执行,因为您需要使用else if
。您的代码应如下所示:
function arr($part){
$partt=intval($part);
if($partt==1)
{
$url="x4";
}
else if($partt==2)
{
$url="x3";
}
else if($partt==3)
{
$url="x2";
}
else if($partt==4)
{
$url="x1";
}
else
{
echo $partt;
}
}
更好的解决方案是使用switch语句:
function arr($part) {
$partt=intval($part);
switch ($partt)
{
case 1:
$url="x4";
break;
case 2:
$url="x3";
break;
case 3:
$url="x2";
break;
case 4:
$url="x1";
break;
default:
echo $partt;
break;
}
}
答案 2 :(得分:0)
期待您的代码:
if($partt==4){
$url="x1";
}else{
// This always executes
echo $partt;
exit;
}
PHP将进入" else"阻止if $ partt!= 4.你应该尝试更换所有"如果"但第一个是" elseif"。
PHP文档:http://php.net/manual/fr/control-structures.elseif.php
答案 3 :(得分:0)
如果您必须使用多个elseif
,请尝试使用switch
。
function arr( $part ){
$partt = intval( $part );
switch( $partt ){
case 1:
$url = "x4";
break;
case 2:
$url = "x3";
break;
case 3:
$url = "x2";
break;
case 4:
$url = "x1";
break;
default:
echo $partt;
break;
}
}
答案 4 :(得分:0)
使用elseif
function arr($part){
$partt=intval($part);
if($partt==1){
$url="x4";
}
elseif($partt==2){
$url="x3";
}
elseif($partt==3){
$url="x2";
}
elseif($partt==4){
$url="x1";
}
else{
echo $partt;
exit;
}
return $url;
}
答案 5 :(得分:0)
尝试使用else if
。您的其他人在$partt != 4
function arr($part)
{
$partt = intval($part);
if ($partt == 1) {
$url = "x4";
} else if($partt == 2) {
$url = "x3";
} else if($partt == 3) {
$url = "x2";
} else if($partt == 4) {
$url = "x1";
} else {
echo $partt;
exit;
}
}