前言
这几年,也手把手带了不少学生。我发现,学习我的《十天学会PHP》系列之后,大家都能初识语法,虽然不熟练,但属于可持续锻炼的范畴。
最大的问题,对PHP错误几乎没有认识。碰到问题就没头没脑的“暴力破解”。所谓暴力破解,就是一点点修改代码,直到“蒙对”,或者没办法来求助我。
我之前写过几篇文章讲错误的,在《文字版》课程中,大家可以免费阅读。还专门给实验室的同学录制过视频课程。虽有效果,但依然不足。
于是,我昨天上午编写了45个用于测试的源代码。 每个源代码都有报错,需要同学去分析去解决。在我看来,这45题通关了,对PHP错误应该也有了足够的了解。
错误信息,是你唯一的依靠
刚刚入门,看到错误信息又是英文的就头疼。但你不知道的是:错误信息,是程序员最重要的伙伴
我一直说:编程其实不是写代码,而是解决问题。
我一直说:解决问题的方法是通用的,你就把自己当警察在破案就好。
那么,破案最重要的是什么?是线索,也就是信息!错误信息就是程序员解决问题的第一线索。
我在朋友圈发的是什么题?
PS:我出题比较随意,毕竟错误也是千变万化,所以其实不用太较真代码细节。
有兴趣的同学可以继续研究。
已经研究过的同学,就直接对答案吧。
.
.
.
标准答案
暴露错误
此行代码与题目无关,防止你的运行环境屏蔽了错误信息。
PS:如果访问源文件时,浏览器一片空白,那多半就是屏蔽了错误。
请勿取巧
有同学给出答案说:注释18-21行,然后添加 即可过关。
其实,你删除所有的代码,改成:success 更简单…
考题是为了锻炼大家,取巧过关,并非我本意。
我想考什么?
除了阅读和解决报错之外,应该还要思考这几个问题。
$i 初始值为什么是 -1?
while($i++
$a 是字符串,为什么当成数组用?
最终:用while循环,逐字输出 success,且无报错信息即可。
这道题的关键
在PHP手册中有这样一句话 所以,下面的语法是成立的:
可以直接把字符串当成数组用。
PS:因为每个字符等同于一个字节,所以这个玩法适用于英文字母、字符,中文不能这样玩
这道题就通顺了
因为字符串可以当成数组用,所以我要的是
正确答案
这个代码与之前题目中变化较大,但这样写,可读性较好。 题目中,刻意降低了代码的可读性。
用while循环,循环7次,$i 的变量从0递增到6。再使用 $i 变量去作为下标访问字符串即可。
领取专属 10元无门槛券
私享最新 技术干货