簡體   English   中英

注冊腳本代碼上的PHP“else”和“if”

[英]PHP “else” and “if” on code for registration script

我剛剛購買了一個包含用戶注冊表單的腳本(PHP / MySQL)。 該腳本有一個選擇性別(男性或女性)的區域。 兩種選擇。

我想修改此代碼以允許選擇動物而不是性別。 我在所有適用的地方更改了代碼,效果很好。 問題是,它只顯示動物1和2,因為初始代碼是為“男/女”選擇設置的(2)。

我需要為代碼找到一種方法,允許最多15只動物而不是僅僅2種結果。 這是代碼。 “profile_userinfo_gender1”和“gender2”是所謂的“性別”或“動物”。 他們應該達到“性別15”。 請幫忙! 謝謝!

    if ($D->u->gender == 0) $D->gender = $this->lang('profile_userinfo_withoutinfo');
    else {
        if ($D->u->gender == 1) $D->gender = $this->lang('profile_userinfo_gender1');
        else $D->gender = $this->lang('profile_userinfo_gender2');
    }

您需要從if else更改為for。 if else構造只允許2種可能性(即使你可以使用if elseif elseif ..依此類推,但這並不好)。

使用for循環遍歷15種可能性並存儲某種數組,該數組為性別變量的每個值提供相應的動物。 例:

for ($i=0; $i < $animals.length $i++)  {
    if ($D->u->gender == $i){
        $this->lang($animals[i]);
        break;
    } 
} 

正如Norbert van Nobelen所說,我也強烈推薦w3schools

 if ($D->u->gender == 0) $D->gender = $this->lang('profile_userinfo_withoutinfo');
else {
    if ($D->u->gender == 1) $D->gender = $this->lang('profile_userinfo_gender1');
    else if($D->u->gender == 2) $D->gender =  $this->lang('profile_userinfo_gender2');
    else if($D->u->gender == 3) $D->gender =  $this->lang('profile_userinfo_gender3');
etc...
}

有一些更聰明的方法可以通過使用具有鍵和值的良好下拉定義來實現此目的。 請參閱w3schools.org。

if ($D->u->gender == 0) $D->gender = $this->lang('profile_userinfo_withoutinfo');
else {
    $total_gender = 15; //define total gender
    for($i = 1;$i <= $total_gender;$i++){
    if ($D->u->gender == $i) $D->gender = $this->lang("profile_userinfo_gender$i");
     }
    #Add an gender generic default. 
    if ($D->u->gender == $i) $D->gender = $this->lang("profile_userinfo_gender_default");
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM