php if elseif语句每次都选择错误的变量

时间:2014-10-24 07:33:03

标签: php if-statement

嗨我得到了一条查询的陈述,以便在检查了正确的“postnummer”后发布特定数据。

if($_POST['postnummer'] == "7900" or "7950" or "7960") {
    $region = "Nordjylland";
    }
    elseif ($_POST['postnummer'] == "8654" or "8660" or "8680" or "8700") {
        $region = "Midtjylland";
    }

但每次发布的价值都是“Nordjylland”?

4 个答案:

答案 0 :(得分:3)

我认为你应该使用数组     

$nordjyllandRegions = array("7900","7950","7960");
$midtjyllandRegions = array("8654","8660","8680","8700");

$zipcode = $_POST['postnummer'];

if(in_array($zipcode, $nordjyllandRegions)) {
  $region = "Nordjylland";
}
elseif (in_array($zipcode, $midtjyllandRegions)) {
  $region = "Midtjylland";
}

答案 1 :(得分:0)

你必须写

if($_POST['postnummer'] == "7900" || $_POST['postnummer'] == "7950" || $_POST['postnummer'] == "7960") {
    $region = "Nordjylland";
}
elseif ($_POST['postnummer'] == "8654" || $_POST['postnummer'] == "8660" || $_POST['postnummer'] == "8680" || $_POST['postnummer'] == "8700") {
        $region = "Midtjylland";
}

答案 2 :(得分:0)

您还可以使用switch语句,它更容易阅读:

switch ($_POST['postnummer']) {
    case "7900":
    case "7950":
    case "7960":
        $region = "Nordjylland";
        break;
    case "8654":
    case "8660":
    case "8680":
    case "8700":
        $region = "Midtjylland";
        break;
    default:
        $region = "no match";
}

答案 3 :(得分:0)

$postNummer = (int) $_POST['postnummer'];    
if( in_array( $postNummer, array( 7900, 7950, 7960 ) ) )
{
  $region = "Nordjylland";
}
elseif( in_array( $postNummer, array( 8654, 8660, 8680, 8700 ) ) )
{
  $region = "Midtjylland";
}

$postNummer = (int) $_POST['postnummer']; 
switch( $postNummer )
{
  case 7900:
  case 7950:
  case 7960:
    $region = "Nordjylland";
    break;

  case 8654:
  case 8660:
  case 8680:
  case 8700:
    $region = "Midtjylland";
    break;
}