我的else语句没有回显变量

时间:2018-11-01 10:14:12

标签: php if-statement echo

它是用PHP编写的。 我的if工作正常,但我的其他没有回音。 $ start和$ end是工作变量。

select coalesce(t1.date_time1,t2.date_time2) as Date_Time ,
case when t1.date_time1 = t2.date_time2 then 'True'  else 'False'  end as Is_Match
from  table1 t1 full outer join table2 t2 on t1.date_time1=t2.date_time2

3 个答案:

答案 0 :(得分:2)

您应在if语句之前声明$start$end变量,并将option标记放在if statement之前,并在if statement之后关闭它< / p>

<select name="trip" class="select-trip">
<?php 
foreach ( $wp_trips as $trip ) {
    $start = date_i18n("d/m/Y", strtotime($trip->start_date));
    $end = date_i18n("d/m/Y", strtotime($trip->end_date));
    ?>
    <option value="<?php echo $trip->remote_ID; ?>">
       <?php
          if ($trip->available && $is_day_trip){
             echo $start;
          } else {
             echo $start . ' T/M ' . $end;
          }
        ?> 
    </option> 
    <?php
} 
?>
</select>

答案 1 :(得分:0)

此代码中的问题是$ start和$ end仅在该if语句中具有作用域。为了使$ start和$ end的值在if语句之外,显然应该在if语句之外进行变量声明。

答案 2 :(得分:0)

例如,您可以这样做:

foreach ($wp_trips as $trip) {
        $checker = $trip->available && $is_day_trip;
        $start = '';
        $end = '';
        if ($checker) {
            $start = date_i18n("d/m/Y", strtotime($trip->start_date));
            $end = date_i18n("d/m/Y", strtotime($trip->end_date));
        }

        if ($checker && !empty($start)) {?>
            <option value="<?php echo $trip->remote_ID; ?>">
                <?php echo $start;?>
            </option>
        } else {
            echo $start . ' T/M ' . $end;
        }
    }