首页 » 网站推广 » php头脑技巧_轨范员轻松学PHP将纷乱思维拨乱反正的3种方法

php头脑技巧_轨范员轻松学PHP将纷乱思维拨乱反正的3种方法

访客 2024-10-23 0

扫一扫用手机浏览

文章目录 [+]

1.1 第1个需求的实现

先来看第1个需求,即将表2-1中日期为2018-06-10的数据输出到浏览器,下面是我们思考的过程。

php头脑技巧_轨范员轻松学PHP将纷乱思维拨乱反正的3种方法

(到现在为止,我仅仅学过选择构造和循环构造、函数、变量等根本知识。

php头脑技巧_轨范员轻松学PHP将纷乱思维拨乱反正的3种方法
(图片来自网络侵删)

(在代码清单2-17中已经用$billData这个数组变量将表格2-1中的所有数据表示出来了。

(用循环构造对$billData进行遍历,得到每行数据,包括日期,然后判断日期是否为2018-06-10。

(输出结果。

下面我们利用伪代码将上面的想法表示出来,如代码清单3-1所示。

代码清单1-1 first_need_one.php

1. <?php2. //循环遍历所有记账数据3. foreach (所有记账数据 as 目前记账) {4. //目前记账数据,包括日期、金额、备注等5. if (目前记账日期即是2018-06-10) {6. //输出该行数据;7. //已经找到所须要的数据,退出循环;8. }9. }10. 11. //其他代码逻辑

如代码清单1-1所示,我们用伪代码将第1个需求的代码框架表示出来了。

1.1.2 文件包含

如代码清单1-1所示,我们须要引用代码清单2-17中的变量$billData,也便是说,须要在first_need_one.php中将代码清单2-17对应的PHP文件bill_data.php包含进来,要不然会涌现变量未定义缺点。

PHP供应了以下几种办法来进行文件包含。

(include将文件包含进来并且实行,如文件不存在,就抛出一个警告,但不中断PHP代码的运行。

(include_once和include一样,唯一的差异便是先检讨是否已经包含该文件。

(require和include一样,唯一的差异便是文件不存在会中断PHP代码的运行。

(require_once和include_once一样,唯一的差异便是文件不存在会中断PHP代码的运行。

现在将bill_data.php文件复制到和first_need_one.php一样的目录中以进行直接包含。
在伪代码1-1的根本之上,实现第1个需求的实际代码如代码清单3-2所示。

代码清单1-2 first_need_two.php

1. <?php2. include 'bill_data.php';3. foreach ($billData as $val) {4. if ($val['date'] == '2018-06-10') {5. //将数据输出到浏览器6. echo '日期为:' . $val['date'] . PHP_EOL;7. echo '金额为:' . $val['money'] . PHP_EOL;8. echo '备注为:' . $val['comment'];9. break;10. }11. }12. //其他代码逻辑

如代码清单1-2所示,我们用PHP将需求1成功实现了。
打开浏览器访问view-source:http:// www.myself.personsite/first_need_two.php,代码清单1-2的运行结果如图1-1所示。

图1-1 代码清单1-1的运行结果

1.1.3 第2个需求的实现

面对第2个需求,即将表2-1中金额小于0并且日期月份是6月的前3条数据输出到浏览器,下面是我们思考的过程。

(有了第1个需求实现的根本,现在同样利用foreach来遍历数组变量$billData。

(输出的数据必须知足3个条件:金额小于0,月份是6月,是否在第3条以内。

(判断目前元素的金额,如果小于0知足条件1。

(判断目前元素的日期,如果月份是6月那么知足条件2。

(打开PHP手册,看日期函数部分,创造可以用date和strtotime两个内置函数将记账日期中的月份提取出来。

(定义一个变量保存知足记录的条数,每获取一条知足的数据,就将这个变量加1。

(当知足条件的记录数为3时,纵然数据知足条件也不输出。

(3个条件必须同时知足,以是用&&进行连接。

(输出结果。

下面我们利用伪代码将思考的过程表示出来,如代码清单1-3所示。

代码清单1-3 second_need_one.php

1. <?php2. 已知足记录数 = 0;3. //输出所有数据4. foreach (所有记账数据 as 目前记账) {5. if (已知足记录数大于即是3) 终止循环遍历,实行其他代码逻辑;6. if (7. 目前记账金额小于0 &&8. 目前记账月份即是06 &&9. 已知足记录数小于310. ) {11. //输出该行数据12. //将已知足记录数加113. }14. }15. 16. //其他代码逻辑

如代码清单1-3所示,我们用伪代码将第2个需求的代码框架表示出来了。
现在在伪代码的根本上,我们来实现第2个需求的真实代码,如代码清单1-4所示。

代码清单1-4 second_need_two.php

1. <?php2. include 'bill_data.php';3. $fulfilCount = 0;4. //循环遍历所有数据 5. foreach ($billData as $val) {6. /7. 由于已经找到了知足条件的3条数据,以是结束循环8. /9. if ($fulfilCount >= 3) break;10. if ($val['money'] < 0 &&11. date('m', strtotime($val['date'] . ' 00:00:00')) == '06' &&12. $fulfilCount < 313. ) {14. //将知足的数据输出到浏览器 15. echo '日期为:' . $val['date'];16. echo ',金额为:' . $val['money'];17. echo ',备注为:' . $val['comment'] .PHP_EOL;18. //每知足一条数据,就将$fulfilCount加119. $fulfilCount++;20. }21. }22. //其他代码逻辑

如代码清单1-4所示,我们用PHP代码将需求2成功实现了,打开浏览器访问http://www.myself.personsite/second_need_two.php,代码清单1-4的运行结果如图1-2所示。

图1-2 代码清单1-4的运行结果

1.4 第3个需求的实现

对付第3个需求,即统计表2-1中每个月的收入支出总金额,并且以表2-2的形式呈现出来.面对这个需求,想必很多初学者思维开始有些混乱了,下面是我们思考的过程。

(仔细不雅观察表2-2,我们创造它可以用数组进行表示,如代码清单1-5所示,以月份作为数组的索引(key),将收入和支出金额一起作为数组索引对应的值(value)。
以是现在的任务便是遍历所有记账数据以天生这个数组。

(用foreach遍历所有的记账数据,我们能够获取每一条记账金额,将金额和0比较得到是收入还是支出金额,同时由第2个需求,我们可以得到日期月份。

(假如有一个检讨数组索引是否存在的函数就好了,这样我们就能够检讨目前记账日期对应的月份是否已经在数组的所有索引里面。
如果没在,就新增一个数组元素,并且该元素的索引为记账日期对应的月份,该元素的值为收入和支出金额。
根据记账金额和0进行比较而进行初始化,如果在索引中,则累加收入或支出金额。

(打开PHP手册,连续找到数组扩展函数部分,创造可以利用array_key_exists函数来实现检讨数组索引是否已经存在的需求,此时所有技能难点都被打破。

(输出结果。

代码清单1-5 third_need_one.php

1. <?php2. //显示数据构造3. $viewData = [4. 6 => [5. 'income' => '收入金额',6. 'consume' => '支出金额'7. ],8. 7 => [9. 'income' => '收入金额',10. 'consume' => '支出金额'11. ],12. 8 => [13. 'income' => '收入金额',14. 'consume' => '支出金额'15. ],16. ];

下面我们利用伪代码将上面思考的过程表示出来,如代码清单1-6所示。

代码清单1-6 third_need_two.php

1. <?php2. foreach (所有记账数据 as 目前记账) {3. //提取目前记账的数字月份4. if (该月份已经存在) {5. if (目前金额小于0) {6. //支出累加7. } else {8. //收入累加9. }10. } else {11. if (目前金额小于0) {12. //令支出即是目前金额13. //令收入即是014. } else {15. //令支出即是016. //令收入即是目前金额17. }18. }19. }20. //其他代码逻辑

如代码清单1-6所示,我们用伪代码将第3个需求的代码框架表示出来了。
现在在伪代码的根本上,我们来实现第3个需求的真实代码,如代码清单1-7所示。

代码清单1-7 third_need_three.php

1. <?php2. include 'bill_data.php';3. //定义一个保存返回值的数组变量4. $viewData = [];5. foreach ($billData as $val) {6. //n表示输出没有数字0的数字月份7. $curMonth = date('n', strtotime($val['date'] . ' 00:00:00'));8. if (array_key_exists($curMonth, $viewData)) {9. //如果目前月份已经存在,就累加10. if ($val['money'] < 0) {11. //如果目前金额小于0,那么便是支出累加,否则是收入累加12. $viewData[$curMonth]['consume'] += $val['money'];13. } else {14. $viewData[$curMonth]['income'] += $val['money'];15. }16. } else {17. //如果没有统计过,就新增18. if ($val['money'] < 0) {19. //如果目前金额小于0,那么支出金额为目前金额,收入金额为020. $viewData[$curMonth]['consume'] = $val['money'];21. $viewData[$curMonth]['income'] = 0;22. } else {23. $viewData[$curMonth]['consume'] = 0;24. $viewData[$curMonth]['income'] = $val['money'];25. }26. }27. }28. //其他代码逻辑29. print_r($viewData);

如代码清单1-7所示,我们用PHP代码将需求3成功实现了。
打开浏览器访问view-source: http://www.myself.personsite/third_need_three.php,代码清单1-7的运行结果如图1-3所示。

图1-3 代码清单1-7的运行结果

1.2 思维导图工具

面对繁芜的问题,我们的大脑为什么会一片空缺?最根本的缘故原由有两个,一个是没有履历且根本知识储备不敷,另一个缘故原由便是我们的想法没有得到形象化的表示。
由于繁芜的问题须要想很永劫光或者实现时须要很多步骤,如果我们将每次想的结果用图的办法保存起来,这样就能够迅速地将繁芜问题的逻辑理清楚。

1.2.1 任务需求

假设现在我们须要实现一个基于PC真个个人商家(C2B)电商平台网站,现在让你以产品经理的身份理一下这个网站须要哪些功能,然后将其整理成文档交给干系同事。

拿到这个任务后,你很头疼,一方面自己没有编程根本,另一方面自己也没有做过这种类型的网站,乃至还不是产品经理。

1.2.2 第1阶段

由于有过购物的履历,以是你很清楚,至少该平台有用户和商家这两个角色。
从这两个角色出发,并根据丰富的购物履历,你很快就得到了第一个思维导图。

如图1-4所示,我们得到了这个电商平台的最大略、最根本的思维导图,从图中能够清楚看到用户和商家的功能有哪些。

图1-4 最根本的思维导图

1.2.3 第2阶段

当想到用户能够对商品进行评论的时候,一个问题溘然涌如今我的面前,万一用户揭橥一些国家法律禁止的内容怎么办?同样,商品内容和名称、用户名称等都存在这个问题,于是我们不得不增加一个专门审核各种内容的角色。

如图1-5所示,为了对各种内容进行审核,我们增加了审核人这样一个角色。

图1-5 增加审核人的思维导图

1.2.4 第3阶段

好啦,图1-5已经将功能描述完了,可以睡觉了。
躺在床上回顾图1-5,才创造还有一个重大功能没有,便是怎么查看平台有多少用户、多少商家、多少商品、多少评论等,而这个功能一样平常都是超级管理员才可以看到,以是思维导图进化到图1-6。

图1-6 拥有超级管理员的思维导图

经由3个阶段的练习,我们创造自己彷佛已经学会了整理混乱的需求。
同样针对一些繁芜逻辑,我们也可以采取这种办法来将零散的、混乱的思维变成一张张形象的图。

1.3 自顶向下逐步细化的方法

在生活中有一个很有趣的体验,大家该当都经历过,便是手里拿着一本书,仅仅看目录就知道这本书写的是什么。

如图1-7所示,我们创造之以是看目录就能够知道整本书将什么,便是由于它从顶部开始,将书分成了几个独立的大块,然后连续对每个大块拆分,形成更小的块,直到无法再分。

图1-7 书的组织构造图

和目录一样,我们在今后的项目中也会碰着很繁芜的功能需求,这个时候就可以利用自顶向下逐步细化的方法将繁芜的问题分成几个大块,然后不断细化大块,直到自己对功能需求非常理解了,这个时候就能够用函数或者方法来实现了。
从某种程度上来看,这种方法的思想便是将繁芜问题大略化。

1.4 习题

作业1:熟惯用自顶向下、逐步细化的方法将繁芜的问题大略化。

作业2:节制用伪代码来描述一个繁芜功能的代码框架或者轮廓。

作业3:节制用各种图将繁芜问题化抽象为详细的方法,从而更利于我们办理问题。

内容简介:

全书共分12章,包括PHP的根本知识、MySQL的干系知识、内置函数、面向工具与数据库的干系知识、记账网站的实现、微信开拓以及图片上传的事理等。
书中的知识结合生活实例进行讲解,而且设计的程序代码也给出了详细的注释,可以使读者轻松节制PHP程序开拓干系知识,快速提高专业开拓技能。

标签:

相关文章

招商蛇口中国房地产龙头企业,未来可期

招商蛇口(股票代码:001979),作为中国房地产企业的领军企业,自成立以来始终秉持“以人为本,追求卓越”的经营理念,致力于打造高...

网站推广 2025-02-18 阅读1 评论0