Если / или оператор выдает ошибку в php 5.3.10

у меня есть if заявление, которое бросает syntax error, unexpected T_VARIABLE ошибка, и я понятия не имею, почему.

Код:

<?php if($contentTop || $contentLeft || $contentCenter || $contentRight): ?>
<div>a bunch of html</div>
<?php endif; ?>

Переменная содержит eiter пустую строку или набор html.

Я пытался изменить || в or но это, кажется, ничего не меняет. ни открытие, ни закрытие if утверждение с фигурными скобками. Кажется, это работает только тогда, когда в заявлении есть только одна переменная. Я также пытался использовать !empty($contentTop) проверить переменные.

На сервере установлена ​​версия PHP 5.3.10-1ubuntu3.26 но, насколько я понимаю, это не должно ничего менять if заявления

РЕДАКТИРОВАТЬ:

По запросу полная разметка:

<?php
$contentTop = get_field('section2new_content');
$contentLeft = get_field('section2new_left');
$contentCenter = get_field('section2new_center');
$contentRight = get_field('section2new_right');if( $contentTop || $contentLeft || $contentCenter || $contentRight ): ?>

<div class="bbh-inner-section teaser-3-col" id="section2temp">
<?php if($contentTop): ?>
<div class="grid-container top">
<div class="row">
<div class="col-sm-12">
<?php echo $contentTop; ?>
</div>
</div>
</div>
<?php endif; ?>
<?php if($contentLeft || $contentRight || $contentCenter): ?>
<div class="grid-container bottom">
<div class="row">
<div class="col-sm-4 left">
<?php echo $contentLeft; ?>
</div>
<div class="col-sm-4 center">
<?php echo $contentCenter; ?>
</div>
<div class="col-sm-4 right">
<?php echo $contentRight; ?>
</div>
</div>
</div>
<?php endif; ?>
</div>
<?php endif; ?>

Как я заметил, у меня есть второй if / || заявление дальше вниз, что, кажется, работает нормально. Также не то, что я по ошибке вставил неправильный тип пробела или что-то еще, я несколько раз вручную переписывал код

1

Решение

Я попробовал ответ @Poiz, который работал. Будучи немного подозрительным, я снова попробовал свой собственный оригинальный код, который теперь тоже работал. Человеческая ошибка еще раз. Может быть, это была какая-то нелегальная версия пробела или табуляции.

1

Другие решения

Вы были бы готовы попробовать что-то немного странное? Во всяком случае, это по сути то же самое, что вы сделали, за исключением того, что мы повернули if Заявления в троичных операциях. Это потому что, как Ты сказал; Вы перепробовали почти все комбинации if без успеха, за исключением случаев, когда предоставляется только одно Условие … Идея здесь заключается в том, чтобы просто сократить строку, которая выполняет основное сравнение с одним простым логическим значением, которое затем может быть использовано в последующем. if, Возможно, это работает для вас, так как ваш волшебный if работает только в том случае, если у вас есть только одно условие для проверки …

    <?php $state = ($contentTop || $contentLeft || $contentCenter || $contentRight) ? true : false; ?>
<?php if($state): ?>
<div>a bunch of html</div>
<?php endif; ?>
0

По вопросам рекламы [email protected]