您当前的位置: 首页 > 慢生活 > 程序人生 网站首页程序人生
18. 循环结构格式和执行过程分析(替代语法新用法以及官方推荐的数据遍历)
发布时间:2023-03-11 22:17:50编辑:雪饮阅读()
基于上篇,这次主要是测试文章模块的文章详情页、某个分类下文章列表页、某个标签下的文章列表页。
参考url如:
文章详情页:http://localhost/wpcourse/2023/03/07/test222/
分类归档页:http://localhost/wpcourse/category/uncategorized/
标签归档页:http://localhost/wpcourse/tag/t_bieming/
测试同样忽略优先级,只测试index.php,但同时采用官方比较推荐的做法,而不是上篇中我们使用的那种比较原生的方法。
<?php if(have_posts()):?>
<?php while(have_posts()):?>
<?php the_post();?>
<pre><?php print_r($post);?></pre>
<?php endwhile; ?>
<?php else: ?>
<p>对不起,暂时没有任何内容!</p>
<?php endif;?>
解析:
have_posts就是字面意思,判断是否还有文章。
the_post的作用是将用于存储文章的那个数组中每次取出一条数据,则该数组会长度会变小,则在循环中have_posts的判断依赖就是该数组长度,然后每次取出的这条数据就放到全局变量post上面了(我的猜测原理)
那么该语句还有更进一步的优化的地方
<?php if(have_posts()):?>
<?php while(have_posts()):the_post();?>
<pre><?php print_r($post);?></pre>
<?php endwhile; ?>
<?php else: ?>
<p>对不起,暂时没有任何内容!</p>
<?php endif;?>
这个应该是代替语法支持的吧,虽然便捷,但是我觉得在语义上未必好吧。写到循环头上。。。
php的非代替语法不晓得可不可以这样搞了。
题外话:我觉得这样有点类似于foreach循环中使用引用方式省key变量的内存占用一样,有一定的性能调优作用吧。
关键字词:替代语法,官方推荐,遍历,循环