多个if代码不能一起工作? (PHP)

时间:2014-08-07 04:55:07

标签: php if-statement

我有一系列if代码需要放在一起,但代码行为怪异,并选择最后的if代码。

if($boardid='1'){ $altboard='13' and $title='Archives' ;}
elseif($boardid='2'){ $altboard='14' and $title='Archives' ;}

所以这段代码结果可行,但不能重复完成其余的代码

不起作用的代码是:

if($boardid=='1'){ $altboard='13' and $title='Archives' ;}
if($boardid='2'){ $altboard='14' and $title='Archives' ;}
if($boardid='3'){ $altboard='15' and $title='Archives' ;}
if($boardid='6'){ $altboard='16' and $title='Archives' ;}
if($boardid='7'){ $altboard='17' and $title='Archives' ;}

并且还有更多代码要添加,但我没有添加它们,因为它只使用任何结果是最后一条线而不管板,即使它清楚地识别板。那么是什么给出了如何使一系列if代码一起工作?我有另一个文件与完全相同的东西,它反应相同。如果那么其他代码的elseif不起作用,也不会交替if和else if。

使用两个相同的符号与上面提到的代码一起工作正常,但不是第二个提到的代码,这是

    if($wrong=='0'){$prize='1000';}
    if($wrong=='1'){$prize='700';}
    if($wrong=='2'){$prize='500';}
    if($wrong=='4'){$prize='200';}
    if($wrong=='5'){$prize='100';}

与最后一个仅保留最后一个代码的那个不同,这个代码只占用第一个代码。所以奖金总是1000.这里有任何帮助

3 个答案:

答案 0 :(得分:3)

您在=条件中使用的是==而不是if,假设您指定的值是真实的,则始终为真。更改条件以使用==进行比较。

那就是说,你可能想考虑使用一个关联数组:

$data = array(
    '1' => array('altboard' => '13', 'title' => 'Archives'),
    '2' => array('altboard' => '14', 'title' => 'Archives'),
    // ...
);
if(array_key_exists($data, $boardid)) {
    $altboard = $data[$boardid]['altboard'];
    $title = $data[$boardid]['title'];
}

或者,如果标题总是“档案”,那就拉出来:

$altboard_map = array('1' => '13', '2' => '14', /* ... */);
if(array_key_exists($data, $boardid)) {
    $title = "Archives";  // consider moving out of the 'if' if applicable
    $altboard = $altboard_map[$boardid]['altboard'];
}

答案 1 :(得分:0)

应该像

if($boardid=='1'){ $altboard='13'; $title='Archives';}
if($boardid=='2'){ $altboard='14'; $title='Archives';}
if($boardid=='3'){ $altboard='15'; $title='Archives';}
if($boardid=='6'){ $altboard='16'; $title='Archives';}
if($boardid=='7'){ $altboard='17'; $title='Archives';}

答案 2 :(得分:0)

使用开关案例:

$title='Archives';
switch ($boardid) {
    case 1:
        $altboard='13';
        break;
    case 2:
        $altboard='14';
        break;
    case 3:
        $altboard='15';
        break;
    case 6:
        $altboard='16';
        break;
    case 7:
        $altboard='17';
        break;
}