我只想在我的页面上显示数据库中的某些数据,所以我用if
和break;
语句结束了我的foreach
循环。我与var_dump()
进行了检查,并且数据是从数据库中正确提供的,功能getName()
也是正确的。
此外,我在那里插入了一个显示良好的测试"echo"test";
。但getName()
仍然缺失。
我认为问题可能出在这个if
语句上,因为当我删除它时,一切正常(除了我得到我不想获取的数据)。
当我在getName()
函数之后插入if
语句时也是如此 - 这部分代码似乎没有执行。
<?php //var_dump($leagues); ?>
<?php foreach($leagues as $leauge): ?>
<?php if($leauge->getLevel() != 'A') { break; } ?>
<li>
<i class="fas fa-long-arrow-alt-right"></i>
<?php $leauge->getName(); echo "test"; ?>
</li>
<?php endforeach; ?>
-
缺少一个回声。
替换:
<?php $leauge->getName(); echo "test"; ?>
附:
<?php echo $leauge->getName(); ?>
-
考虑使用继续; 而不是中断;
break 语句提前终止整个循环,而 继续提前带来下一次迭代。参考:极客为极客
当你使用breakIF $leauge->getLevel() != 'A' 时,如果你的第一次迭代进入这个条件,你的整个循环将终止。如果您想"跳过当前联赛,但转到下一个联赛并再次检查",只需更改为继续。
在这里重写它,这样它就会更容易看到。什么帮助了我: 在这一行代码中
<?php $leauge->getName(); echo "test"; ?>
当我想显示结果时,我必须使用
<?=
而不是<?php
.为什么我真的不知道。