2014-05-13 4 views
-1

я следующее, если заявление, которое работает отлично:Вложенные Если заявления PHP

if ($user['email_only'] === '1') { 
    $newsubscriber['subscriberMessage'] = array('masterId' => '1090438'); 
} else if($user['email_only'] === '0') { 
    $newsubscriber['subscriberMessage'] = array('masterId' => '1090442'); 
} 

Однако, я хотел бы добавить дополнительные, если заявление вокруг этого, так что я мог бы установить различные идентификаторы на основе страны пользователей , Я придумал следующее, но он не работает?

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 

Может кто-нибудь помочь мне в том, где я иду не так?

+0

Начните с отступывания своего кода правильным способом. Это имеет огромное значение. Кстати ... что не работает? Вы получаете какие-либо ошибки? – putvande

+3

* Это не работает * не очень полезно. Что он должен делать, что он на самом деле делает? Вы получаете сообщения об ошибках? – Styphon

+0

Вы уверены, что $ user ['country'] является строкой? – xyNNN

ответ

-1

На самом деле, вы должны просто форматировать свой код правильно ... я бы тоже не нашел ошибок в этом беспорядке.

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 
+1

В чем разница, кроме форматирования? – putvande

+0

Разница в том, что я удалил цитаты из чисел, потому что я не думаю, что они на самом деле являются числами. –

+0

Ох. Что ж. То, что вы получаете за использование копии и вставки без внимания. Thx для этого, исправить это. –

2

Не используйте в точности равна (===), если вам не нужно, и абсолютно уверены в данных, которые вы получаете. Попробуйте это:

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_dump($user);, чтобы убедиться, что у вас есть ожидаемые значения в стране и email_only, что вы ожидаете.

Смежные вопросы