2013-10-01 97 views
0

我正在編輯顯示某人的性別但試圖添加其他選項的腳本的一部分。PHP顯示選項取決於值

保存信息的表單將其保存爲值。

在我的郎文件這是我有我試圖改變相關的部分:

$LNG['powner'] = 'Pet Owner'; 
$LNG['dog'] = 'Dog'; 
$LNG['cat'] = 'Cat'; 
$LNG['rabbit'] = 'rabbit'; 

代碼即時試圖顯示的部分是

((!empty($profile['gender'])) ? '<div class="sidebar-list">'.$LNG['ttl_gender'].': 
<strong>'.(($profile['gender'] == 1) ? $LNG['powner'] :($profile['gender'] == 2) ? 
$LNG['cat'] : ($profile['gender'] == 3) ? $LNG['rabbit'] : $LNG['rabbit']).'</strong> 
</div>' : '').' 

但只會顯示貓或兔子...

我想代碼被設置爲一個或另一個,因爲這個作品:

((!empty($profile['gender'])) ? '<div class="sidebar-list">'.$LNG['ttl_gender'].' 
: <strong>'.(($profile['gender'] == 1) ? $LNG['dog'] : $LNG['cat']).'</strong></div>' 
: ''). 

後的代碼,如果遵循

'.((!empty($profile['website'])) ? '<div class="sidebar-list">' 
.$LNG['profile_website'].': <strong><a href="'.$profile['website']. 
'" target="_blank" rel="nofllow">'.$LNG['profile_view_site'].'</a> 
</strong></div>' : '').' 
+2

代碼不是很可讀和習慣鼓勵人們來幫助你。 – tikider

+0

對不起,現在排序 –

回答

0

你的代碼可以被重新寫入說:

if(!empty($profile['gender']) { 
    echo '<div class="sidebar-list">'.$LNG['ttl_gender']; 
} else { 
    echo "<strong>"; 
    if($profile['gender'] == 1) { 
     echo $LNG['powner']; 
    } else { 
     if($profile['gender'] == 2) { 
      echo $LNG['cat']; 
     } 
     else { 
       if($profile['gender'] == 3){ 
       echo $LNG['rabbit']; 
       } else { 
        echo $LNG['rabbit']; 
       } 
     } 
    } 
} 

正如你看到使用速記if/else語句是混淆閱讀代碼,並可能導致錯誤。以更具可讀性的方式重新編寫您的功能,並且您將防止錯誤,並針對實際情況應該發生混淆。

我假設你遇到的問題是,你正在測試這對用戶是不論男女,2或3,並在單行從未1.

+0

是的,這是正確的,它總是2或3 :)我試圖用當前的代碼替換你的代碼,我不能得到它的錯誤免費我得到一個語法錯誤。因爲上面和下面都有更多的代碼。 –

+0

之前的代碼結束。並且之後的下一個代碼以'開頭。如果多數民衆贊成在任何幫助 –

+0

什麼是周圍和它下面的代碼 –