PHP сравнить Fail?

У меня есть следующий код, который сравнивает!

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 выполняет

-1

Решение

Попробуй с 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;
2

Другие решения

Остальное всегда будет выполняться, когда $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;
}

}
0

Смотря на ваш код:

if($partt==4){

$url="x1";}else{
// This always executes
echo $partt;
exit;

}

PHP войдет в блок «else», если $ partt! = 4. Вы должны попробовать заменить все «if», кроме первого, на «elseif».

Документация PHP: http://php.net/manual/fr/control-structures.elseif.php

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;
}
}
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;

}
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;
}
}
0