这是我在此的头一篇博文。我昨天花了整个时间在网上寻找答案,但我认为我在这里有一个相当不寻常的 while 循环应用程序,所以我没有取得太大的成功。
基本上我有几个类别,例如标题为“ Kosove ”和“ Shqiperi ”。其中每一个都有许多子部分。这些子部分可能有也可能没有内容。我正在使用 while 循环来显示子部分,前提是它们里面确实有内容。
这是我的代码:
<ul>
<?php while(osc_has_list_regions($country = 'kv') ) { ?>
<li><a href="<?php echo osc_list_region_url(); ?>"><?php echo osc_list_region_name(); ?></a> <em>(<?php echo osc_list_region_items(); ?>)</em></li>
<?php } ?>
</ul>
请注意,在这种情况下,“$country = 'kv'”将类别标识为“ Kosove ”。生成的是:
- 普里什廷(1)
- 武什崔(1)
这很好。
当我还想显示另一个类别的小节时,就会出现问题,例如 Shqiperi。代码:
<ul>
<?php while(osc_has_list_regions($country = 'kv') ) { ?>
<li><a href="<?php echo osc_list_region_url(); ?>"><?php echo osc_list_region_name(); ?></a> <em>(<?php echo osc_list_region_items(); ?>)</em></li>
<?php } ?>
</ul>
<br><br>
<ul>
<?php while(osc_has_list_regions($country = 'al') ) { ?>
<li><a href="<?php echo osc_list_region_url(); ?>"><?php echo osc_list_region_name(); ?></a> <em>(<?php echo osc_list_region_items(); ?>)</em></li>
<?php } ?>
</ul>
再次注意,在这种情况下,“$country = 'al'”将类别标识为“ Shqiperi ”。生成的是:
- 普里什廷(1)
武什崔(1)
普里什廷(1)
- 武什崔(1)
这是不正确的。代码的第二部分忽略了“al”,只是重复了前面的 while 循环内容(即“kv”的小节)。
它应该是:
- 普里什廷(1)
武什崔(1)
培拉特(1)
因为“Berat”是“Shqiperi”类别的适当小节。
如果我将“ $country = 'al'” 作为第一个 while 循环条件,则显示:
培拉特(1)
培拉特(1)
所以显然顺序很重要。似乎之前的循环没有正确关闭。
我对 PHP 很陌生,我什至不确定我是否在这里适当地使用了 while 循环。任何如何解决此问题的建议将不胜感激。