2013-10-01 62 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

什么是周围和它下面的代码 –