这里讲一个非常细致的知识点,就是returnecho的区别。

为什么说这个知识点呢?因为在Widget_Options这个类里面,有7个函数,使用的是echo,而不是return

一开始我还用echo来调试来着,想看看里面的某些变量的值,但发现总报错,然后就意识到,莫非echo会结束这个函数?查文档发现,仅仅说echo会以string的形式输出一些变量的值,而且echo并不是一个真正意义上的函数,因此不需要括号即可。

但echo是否会结束这个函数的执行,类似return呢?答案是肯定的。

再通过google发现,return是返回一个结果,你可以把这个结果储存在某个新的变量里,然后随后调用。这显然是废话。但echo,是直接返回一个结果,你没法把这个结果储存起来,算是一次性的吧。

这俩的区别用通俗的语言来解释就是,你问一个人一个问题,如果是return,你会从他这里拿到结果,然后自行处理,比如保密,比如转告别人,等等,都可以。但echo就是,你问了一个问题,这个人立刻把结果告诉所有人,就不需要你这个中间人了。

总之,用echo肯定不是一个好的practice,因此我把这个Widget_Options里的所有echo都换成return了。

好,这个更改,带来的副作用就是大量的报错,因为在admintheme里,有大量的地方直接用到某个option,所以我还要在这些页面里添加echo,当然最好是用<?= ?>这样的shortcut。

逐个文件搜索,改动,工作量大的一笔。

标签: Typecho, 源码分析

添加新评论