else / elseif语句不正确||意外的“ elseif”(T_ELSEIF)

时间:2018-07-24 21:49:06

标签: php wordpress

我不是最擅长编码的人,但要慢慢学习。目前尝试使用指南制作Wordpress插件,但被下面的文字所困扰。

主要错误在最后的if语句中。为最后的elseif语句引发语法错误。该代码无需第一个elseif语句即可工作,但我不明白为什么。

if($tot != 0) {

    $res = '<div class="time_div"><div class=" pickinfod"><p class="form-field form-field-wide session_options bikeselopt"><label for="session_choose">'.$def_sess.' season selected</label><input style="display:none;" type="text" name="wc_extra_fields_normaltour[sessionoption]" value='.$def_sess.' /></p></div><p class="form-field form-field-wide session_options"><label for="wc_extra_fields_normaltour[spickupstart]">Pickup Timings:</label><select name="wc_extra_fields_normaltour[spickupstart]" id="atest" class="bikeselopt" onchange="get_locbytime(this.value);" required="required"><option value="">Select</option>';

    for($i=0; $i<$tot; $i++){
        $res .= '<option value="'.$arr_unq[$i].'">'.$arr_unq[$i].'</option>';
    }

    $res.= '</select></p></div>';

} else {

    if(($sess_type == "only_summer") || ($sess_type == "only_winter")){

        if($def_sess == 'winter'){
            $new_sess= 'summer';
        } else {
            $new_sess= 'summer';
        }

        $res.="<div class='mes_div'><p>".$def_sess." Product: Available May 1st - September 30th. In Summer please try our Bike The Bridges Tour</p></div>";
    }
    elseif($def_sess == 'summer'){
        $new_sess= 'winter';
    } else {
        $new_sess= 'winter';
    }

    $res.="<div class='mes_div'><p>".$def_sess." Product: Available October 1st - April 30th. In Winter please try our Winter Bike The Bridges Tour</p></div>";

}

elseif(($sess_type == "both_call") || ($sess_type == "only_summer_wintercall") || ($sess_type == "only_winter_summercall")){

    $res.="<div class='mes_div'><p><a href='tel:64279455801'>Call us</a> or <a href='mailto:".get_option('admin_email')."'>Email us</a></p></div>";}

}
echo $res;die(0);
}

2 个答案:

答案 0 :(得分:3)

清理代码后,它看起来更容易一点。您最外层的if语句去了

if{}
else{}
elseif{}

这是无效的订单。 else是if语句的最后一个子句。

此外,代码块末尾还有一个额外的右括号。

答案 1 :(得分:0)

if的构造是

if (condition) {
   //true 
}
else {
   //false
}

if elseif的构造

if (condition) {
   //true 
}
elseif {
   //elseif
}
elseif {
   //elseif
}
else {
   //false
}

您不能将match elseif和else混合使用。对于elseif构造,其他应该始终位于最后。因此,最后的elseif语句不符合语法。