Discuz!官方免费开源建站系统

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

[经验] 【教程】第四讲:让你写出漂亮的调用,明白数组和loop循环。(数组,loop篇)

[复制链接]
kongkang 发表于 2008-6-26 11:16:12 | 显示全部楼层 |阅读模式
转载请注明(作者:kongkang 来源:discuz论坛 或者 www.daxuesheng.com大学生网)
教程建议及讨论:http://www.daxuesheng.com/space-mtag-tagid-789.html
看帖要回哦

上次课程的回顾:
第一讲(https://discuz.dismall.com/thread-957572-1-1.html
第二讲(https://discuz.dismall.com/thread-958195-1-1.html
第三讲(https://discuz.dismall.com/thread-959556-1-1.html
针对简单的if相关判断我们做了一个阐述和初步学习,根据大家的需求,这次我们主要谈一下loop循环调用的事情。

首先呢,我们要理解数组,数组的定义我就懒得在这里说了,大家先去查一下相关资料。我只是做一个补充,让初学者更好理解。
数组呢,可以考虑成为一种序列,例如我们拿着一手好牌,扑克牌会有花色,有些扑克牌上有图画什么的。
数组也类似,数组也有代号,代号指向这个里面的内容。

例如我们有一个数组,$list=array('0'=>'这里是0号里面的内容','1'=>'这里表示1号里面的内容','2','3'……); //这句代码不规范,只做理解
上面这句代码,表示将$list这个变量赋值为一个数组,这个数组里面代号0里面的数据呢,就是“这里是0号里面的内容”,那么1,2……就不用说了。

这样我们怎么调用这里面的内容呢?
我们想要显示“这里表示1号里面的内容”这句,我们就直接使用$list['1']就好了,表示我要显示$list数组里面1号表示的内容。

这时候,我想很多看过我之前教程的朋友就会问,是不是那个表示是否登陆的全局变量也是一个数组呢?~
哈哈,加十分,鼓励你的细心“$_SGLOBAL['supe_uid']”这就是一个标准的数组元素啦,(我这样叫,哈哈,理解就好)
他表示全局数组$_SGLOBAL里面的表示登陆状态下uid的数字,如果不明白,参考一下第一讲就好了,再不理解的话,把kongkang当成火星人……

现在理解了这个数组的意思,我们再次拓展:
如果代号1里面的内容还是一个数组呢?
这样就引申出来一个数组套数组的东西,我们叫做二维数组,那么三维数组,四维等等你就理解了吧?

那么,发挥你的大脑判断,如果我要调用一个二维数组里面的某个变量值怎么做呢?
哇哈哈,你真是太有才了,那就是用两个中括号来表示:
$list['1']['username']这个就表示,数组$list下的1号(也是数组哦)元素下的,“username”号内容。

这时候,有朋友就问了,这个username也能作为一个代号么?
那么我就问,9527表示周星星的话,我们叫周星星,是不是也代表这个人呢?
所以,数组里面负责代号的部分,可以是数字或者是字符串,也就是说,username可以表示这个数组里面的某个代号,他的值可能就是kongkang。

如果你糊涂了,那就多看几次,慢慢理解,我理解这个东西也很头疼,毕竟当时很白,呵呵
更多关于数组的知识,还是需要你自己学习下

那么有了数组的概念,我们就可以看看模板里面loop这个标签怎么操作数组的了。
  1. <!--{loop $list $key $value}-->
  2. <li><a href="space.php?uid=$value[uid]">$value[username]</a></li>
  3. <!--{/loop}-->
复制代码
上面这个例子就表示了一个最简单的用户列表的调用。
其中$list代表了一个二维数组,这个数组组成是这样的,首先:按照数字排序0号,1号,2号……
而每一个编号里面又是一个数组,这个数组就记录着每一个用户的信息,例如uid号,里面就记录着这个用户的id数字;username号,就代表这个用户的用户名是什么。

loop的意思,通过上面的例子,我们可以这样理解:
loop自动将数组$list分解,将按照$key(第一层代号,就是上面说的0,1,2……)的顺序,依次将每一个代号表示的数组调用出来,提供给loop里面的模板文件来使用。
每次调用出来的数组,自动赋值到$value里面(也就是说,刚才的代号0表示的数组,就直接把值赋给了$value),那么$value[uid]就表示本次循环的用户的uid数字,而$value[username]就表示本次循环的用户的用户名咯。那么随着按照$key顺序的依次循环,里面的<li><a href="space.php?uid=$value[uid]">$value[username]</a></li>就被一次一次的显示出来,我们就看到了用户列表了。


现在我们就可以打开后台,看看那个数据调用的东西,原先那么神奇,现在是不是明白,模板部分要怎么写了?
就到这里,希望大家能有所领会,无论讲多少,最后还要动手你才能理解。

期待你做出来漂亮的模板,一些相关php的东西我将在讲解插件制作的时候再说,现在我们先把模板部分打好基础哦~~~

kongkang希望你强,希望各位都强,感谢支持大学生网 http://www.daxuesheng.com

[ 本帖最后由 kongkang 于 2008-6-26 14:46 编辑 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

评分

5

查看全部评分

usxing 发表于 2008-6-26 11:18:16 | 显示全部楼层
总算是抢到一次沙发。。不容易啊。。。
回复

使用道具 举报

jersonzhow 发表于 2008-6-26 11:18:19 | 显示全部楼层
看来SF不占,对不起K大了,呵呵
回复

使用道具 举报

Open-花 发表于 2008-6-26 11:19:35 | 显示全部楼层
没抢到.~~~~~
回复

使用道具 举报

usxing 发表于 2008-6-26 11:20:48 | 显示全部楼层
原帖由 jersonzhow 于 2008-6-26 11:18 发表
看来SF不占,对不起K大了,呵呵

好险啊。发贴时间一样。。
回复

使用道具 举报

nowbe 发表于 2008-6-26 11:25:46 | 显示全部楼层
(::36::) (::36::)
回复

使用道具 举报

zhouen 发表于 2008-6-26 11:26:39 | 显示全部楼层
爱死KK啦
回复

使用道具 举报

ebottle 发表于 2008-6-26 11:29:05 | 显示全部楼层
跟到抢啊。。。。。。。。。
回复

使用道具 举报

jersonzhow 发表于 2008-6-26 11:29:17 | 显示全部楼层
原帖由 usxing 于 2008-6-26 11:20 发表

好险啊。发贴时间一样。。


(::71::)  还是晚咧一步
回复

使用道具 举报

aqxsj 发表于 2008-6-26 11:32:56 | 显示全部楼层
原帖由 jersonzhow 于 2008-6-26 11:29 发表


(::71::)  还是晚咧一步

慢慢看!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2024-5-3 17:04 , Processed in 0.108341 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表