我通过一个新客户机继承了一个自定义模板,并且有一段无法通过的代码。它在实时服务器上工作正常,但我无法将站点加载到本地设置中,因为我不断遇到以下错误:
分析错误:语法错误,模板欢迎中出现意外的“endwhile”(T\\u endwhile)。php在线88
最初的开发人员说它与他的文件中的代码匹配,他没有任何问题,所以我很困惑。
我正在Windows上运行XAMPP。如果我注释掉第一个endwhile语句,我会得到相同的错误,但引用的是代码下面的一行。我认为endwhile已经与if语句解耦,但我看不出如何修复它。
有什么建议吗?从原始if到endwhile语句的代码部分复制到下面。
<?php
// check if the repeater field has rows of data
if (have_rows(\'sections\')):
// loop through the rows of data
$section_counter = 1;
while (have_rows(\'sections\')) : the_row();
?>
<div class="row">
<div class="col-md-12">
<h3 class="heading"><?php the_sub_field(\'section_title\'); ?></h3>
<?php the_sub_field(\'section_content\'); ?>
<?
$section_slider_images = get_sub_field(\'section_slider\');
?>
<div class="home-section-slider owl-carousel owl-theme">
<?php
foreach ($section_slider_images as $image) {
?>
<div class="item"><img class="lazyOwl"
data-src="<?php echo $image[\'url\']; ?>"
alt="<?php echo $image[\'alt\']; ?>"
title="<?php echo $image[\'title\']; ?>"></div>
<?
}
?>
</div>
</div>
</div>
<?php
$section_counter++;
endwhile;
else :
// no rows found
endif;
?>
最合适的回答,由SO网友:Zakalwe 整理而成
检查您的short_open_tag
正在设置php.ini
. 你在这个代码中有一个混合物。如果关闭该设置,则可能是使用短标记的语句未被解析。
这尤其可能导致循环“不同步”
<?
}
?>
如果short\\u open\\u tags处于禁用状态,则
foreach
循环将不会循环并遇到
endwhile
过早地。