0

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

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

在我的 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>' : '').'
4

1 回答 1

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。

于 2013-10-01T14:23:50.427 回答