правильно ли использовать закрывающий тег php внутри оператора if? : <?PHP если (условие) { ?>}
В opencart 2.2 продукт.в файле 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 } ?>
В частности, я не в состоянии понять, как они могут использовать ?> внутри фигурных скобок оператора if? Что еще более важно, я попытался пересмотреть приведенный выше код следующим образом, но затем он перестал работать:
<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';
?>
Какие-нибудь объяснения?








Ответы - правильно ли использовать закрывающий тег php внутри оператора if? : <?PHP если (условие) { ?>} / is it correct to use php closing tag inside if statement? : <?php if (condition) { ?>}

23.04.2019 12:08:10
В коде php ошибки нет.
Вы можете открывать и закрывать тег php сколько угодно. Во время выполнения файлы обрабатываются, и весь код php интерпретируется каждой строкой одновременно.
Так что это нормально писать так
<?php echo 'hello';
echo 'world';
?>
так же как и это
<?php echo 'hello'; ?>
<?php echo 'world'; ?>
Единственная причина, по которой OpenCart использует более поздний стиль, заключается в том, что он немного лучше, так как тег php создает столбец и немного легче читается.



23.04.2019 12:16:01
Его хорошо видно, есть синтаксическая ошибка для if
. Вы не можете использовать elseif
без if
.
<?php
if ($check) {
// Code...
} elseif ($check_2) {
// Code...
}
?>






02.05.2019 10:54:55
<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
?>

02.05.2019 11:04:47
<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 .
?>