gpt4 book ai didi

PHP 始终显示 3 个 li 元素,即使 while 循环测试表达式为 false

转载 作者:太空宇宙 更新时间:2023-11-04 16:25:56 25 4
gpt4 key购买 nike

我正在寻找一个很好的解决方案来始终显示一定数量的元素 - 在本例中为 3 - 即使 while 循环测试表达式为 false。

这是为了获得统一的网格布局,这样我就不需要弄乱等高列等...

代码

<ul class="event__lineup">
<?php

$l = 0;

while ( has_sub_field('event_lineup') ) :

echo '<li class="title" itemprop="performer" itemscope="" itemtype="http://schema.org/Person"><span itemprop="name">' . get_sub_field('event_artist') . '</span></li>';

if ( $l == 2 ) : break; endif;

$l++;

endwhile;

?>
</ul>

如果说只有 1 位或 2 位艺术家,我希望使用占位符:

echo '<li class="title">&nbsp</li>';

我知道 while 循环可能不是最好的解决方案,但是,我不确定如何采用不同的解决方案。

编辑

<ul class="event__lineup">
<?php

for ($i = 0; $i < 3; $i++) {
if ( has_sub_field('event_lineup') ) {
echo '<li class="title" itemprop="performer" itemscope="" itemtype="http://schema.org/Person"><span itemprop="name">' . get_sub_field('event_artist') . '</span></li>';
} else {
echo '<li class="title">&nbsp</li>';
}
}

?>
</ul>

最佳答案

<ul class="event__lineup">
<?php

$done = false;

for ($i = 0; $i < 3; $i++) {
if (!has_sub_field('event_lineup')) {
$done = true;
}

if ($done) {
echo '<li class="title">&nbsp</li>';
} else {
echo '<li class="title" itemprop="performer" itemscope="" itemtype="http://schema.org/Person"><span itemprop="name">' . get_sub_field('event_artist') . '</span></li>';
}
}

?>
</ul>

for无论调用 has_sub_field 的结果如何,循环都会执行 3 次.看起来 - 根据您在初始测试中获得的结果 - 一次 has_sub_field返回 false , 下一次调用 has_sub_field将重置其内部索引并从头开始。

所以我们设置$donetrue第一次has_sub_field返回 false然后使用 $done决定何时打印子字段以及何时打印占位符 <li> .

关于PHP 始终显示 3 个 li 元素,即使 while 循环测试表达式为 false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25327688/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com