Php 嵌套的If语句

Php 嵌套的If语句,php,if-statement,Php,If Statement,我有下面的if语句,它运行良好: if ($user['email_only'] === '1') { $newsubscriber['subscriberMessage'] = array('masterId' => '1090438'); } else if($user['email_only'] === '0') { $newsubscriber['subscriberMessage'] = array('masterId' => '1090442'); }

我有下面的if语句,它运行良好:

if ($user['email_only'] === '1') {
    $newsubscriber['subscriberMessage'] = array('masterId' => '1090438');
} else if($user['email_only'] === '0') {
    $newsubscriber['subscriberMessage'] = array('masterId' => '1090442');
}
然而,我想在这个问题上添加一个额外的if语句,这样我就可以根据用户所在国家设置不同的id,我提出了以下建议,但它不起作用

if ($user['country'] === 'au') {
    if($user['email_only'] === '1') {
        $newsubscriber['subscriberMessage'] = array('masterId' => '1091479');
} else {
        $newsubscriber['subscriberMessage'] = array('masterId' => '1090589');
    }
} // AU country END 
else if ($user['country'] === 'de') {
    if($user['email_only'] === '1') {
        $newsubscriber['subscriberMessage'] = array('masterId' => '1090438');
    } else {
        $newsubscriber['subscriberMessage'] = array('masterId' => '1090442');
    }
} // DE country END 

有人能帮我找出哪里出了问题吗?

实际上,您应该正确格式化代码。。。我也不会在这混乱中发现错误

if ($user['country'] === 'au'){
    if ($user['email_only'] === 1) {
        $newsubscriber['subscriberMessage'] = array('masterId' => '1090438');
    }else if($user['email_only'] === 0){
        $newsubscriber['subscriberMessage'] = array('masterId' => '1090442');
    }//AU END
} else if ($user['country'] === 'de'){
    if ($user['email_only'] === 1) {
        $newsubscriber['subscriberMessage'] = array('masterId' => '1090438');
    }else if($user['email_only'] === 0){
        $newsubscriber['subscriberMessage'] = array('masterId' => '1090442');
    }
} //DE END
不要使用完全相等的(
===
),除非您需要并且绝对确定所获得的数据。试试这个:

if ($user['country'] == 'au') {
    if($user['email_only'] == '1') {
        $newsubscriber['subscriberMessage'] = array('masterId' => '1091479');
} else {
        $newsubscriber['subscriberMessage'] = array('masterId' => '1090589');
    }
} // AU country END 
else if ($user['country'] == 'de') {
    if($user['email_only'] == '1') {
        $newsubscriber['subscriberMessage'] = array('masterId' => '1090438');
    } else {
        $newsubscriber['subscriberMessage'] = array('masterId' => '1090442');
    }
} // DE country END 

您可以做的另一件事是
var\u dump($user)
确保您在国家/地区中有预期值,并仅通过电子邮件发送您预期的值。

首先以正确的方式缩进代码。这是一个巨大的不同。顺便说一句什么不起作用?你有什么错误吗?它不起作用,没有什么帮助。它应该做什么,它实际上在做什么?您是否收到任何错误消息?是否确定$user['country']是字符串?是否确定
$user['email\u only']
'1'
而不是
1
true
?除了格式化之外还有什么区别?区别在于我从数字中删除了引号,因为我认为这些实际上不是数字。哦。好。这就是你在没有注意的情况下使用复制和粘贴的结果。谢谢,我会修好的。