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 に答える