if/else包含foreach和if语句-解析错误:语法错误,意外';}';


if/else with foreach and if statement inside - Parse error: syntax error, unexpected '}'

我在这段代码中不断出现语法错误。

<?php 
$day = get_field_object('day_of_the_week');
$value = $day['value'];
$choices = $day['choices'];
    if( $value ): ?>
        <ul>
            <?php foreach( $value as $v ): ?>
                <li>
                    <?php if( $v != $page_title ) { ?>
                        <a class="btn" href="/venture-centre/activities-2/<?php echo $choices[ $v ]; ?>#<?php echo basename(get_permalink()); ?>">
                            <?php echo $choices[ $v ]; ?>
                        </a>
                        <?php } ?>
                </li>
                <?php endforeach; ?>
        </ul>
        <?php } else { ?>
                    <p>This activity is only available on <?php echo $page_title ?>.</p>
        <?php } ?>
        <?php endif; ?>

您混合了标准语法和替代语法,这是不允许的:

if( $value ): ?>   // start alternative syntax block
    <?php } else { ?>  // where did this get opened?

您有一个右大括号,没有一个左大括号。

参见</a> 之后的<?php } ?>

您必须删除此行或在每个的后面添加<?php { ?>

感谢所有的评论,我已经做出了建议的更改,并意识到我需要一个elseif来代替else来完成我试图实现的目标:

<?php 
$day = get_field_object('day_of_the_week');
$value = $day['value'];
$choices = $day['choices'];
if( count($value) > 1 ) { ?>
    <ul>
        <?php foreach( $value as $v ) { ?>
            <li>
                <?php if( $v != $page_title ) { ?>
                    <a class="btn" href="/venture-centre/activities-2/<?php echo $choices[ $v ]; ?>#<?php echo basename(get_permalink()); ?>">
                        <?php echo $choices[ $v ]; ?>
                    </a>
            </li>
        <?php } } } elseif( count($value) == 1 ) { ?>
                        <p>This activity is only available on <?php echo $page_title; ?>.</p>
        <?php } ?>