Мой оператор else не отображает переменную - PullRequest
0 голосов
/ 01 ноября 2018

Написано на PHP. Мой if работает нормально, но остальное не повторяется. $ start и $ end - рабочие переменные.

   <select name="trip" class="select-trip">
  <?php foreach ( $wp_trips as $trip ) {
    if ($trip->available && $is_day_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 echo $start;
      } else {
          echo $start . ' T/M ' . $end;
      }
    } ?>
  </select>

Ответы [ 3 ]

0 голосов
/ 01 ноября 2018

Проблема в этом коде - $ start, а $ end имеет только область действия в операторе if. Для получения значений $ start и $ end вне оператора if очевидно, что объявление переменной должно выполняться вне оператора if.

0 голосов
/ 01 ноября 2018

Например, вы можете сделать это так:

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;
        }
    }
0 голосов
/ 01 ноября 2018

Вы должны объявить переменные $start и $end перед оператором if, и вы должны поставить тег option перед if statement, а также закрыть его после if statement

<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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...