PHP显示选项取决于值

时间:2013-10-01 14:14:22

标签: php

我正在编辑脚本的一部分,该脚本显示某个人的性别但尝试添加其他选项。

保存信息的表单将其保存为值。

在我的lang文件中,这与我想要改变的部分有关:

$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>' : '').'

1 个答案:

答案 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。