правильно использовать закрывающий тег php внутри оператора if?:} - PullRequest
0 голосов
/ 23 апреля 2019

В файле opencart 2.2 product.tpl я нашел следующий код, который меня смущает:

<div class="row" style="padding-top:10px"><?php echo $column_left; ?>
<?php if ($column_left && $column_right) { ?>
<?php $class = 'col-sm-6'; ?>
<?php } elseif ($column_left || $column_right) { ?>
<?php $class = 'col-sm-9'; ?>
<?php } else { ?>
<?php $class = 'col-sm-12'; ?>
<?php } ?>

В частности, я не могу понять, как их можно использовать?> Внутри фигурных скобокесли заявление?Что еще более важно, я попытался изменить приведенный выше код следующим образом, но затем он перестал работать:

<div class="row"><?php echo $column_left; ?>
<?php if ($column_left && $column_right) { 
$class = 'col-sm-6'; 
} 
elseif ($column_left || $column_right) { 
$class = 'col-sm-9'; 
} else { 
$class = 'col-sm-12'; 
?>

Какие-либо объяснения?

Ответы [ 4 ]

1 голос
/ 23 апреля 2019

В php-коде нет ошибки.

Вы можете открывать и закрывать теги php сколько угодно. Во время выполнения файлы обрабатываются, и весь php-код интерпретируется в каждой строке за раз.

Так что хорошо писать так

<?php echo 'hello';
echo 'world';
?>

а также

<?php echo 'hello'; ?>
<?php echo 'world'; ?>

Единственная причина, по которой OpenCart использует более поздний стиль, заключается в том, что он немного приятнее, поскольку тег <?php создает столбец и его немного легче читать.

0 голосов
/ 02 мая 2019
<div class="row"><?php echo $column_left; ?>

<?php if ($column_left && $column_right) { 
         $class = 'col-sm-6'; 
       } 
      elseif ($column_left || $column_right) { 
         $class = 'col-sm-9'; 
       } else { 
         $class = 'col-sm-12'; 
       } // you have missed this "}" for the else .
 ?>
0 голосов
/ 02 мая 2019
<div class="row"><?php echo $column_left; ?>
<?php if ($column_left && $column_right) { 
$class = 'col-sm-6'; 
} 
elseif ($column_left || $column_right) { 
$class = 'col-sm-9'; 
} else { 
$class = 'col-sm-12'; 
} // this is missing in your case
?>
0 голосов
/ 23 апреля 2019

Его хорошо видно, есть синтаксическая ошибка для if. Вы не можете использовать elseif без if.

<?php 
if ($check) {
    // Code...
} elseif ($check_2) {
    // Code...
}
?>
...