之前在输出学生程序,用作文本渲染的时候,我们使用了check_score($score)这样的函数,用于封装功能。
大家应该有个初步的认识。函数,是一个运算过程,封装起来,多处调用。可以有效地使程序简洁起来,更富于可读性。
还是用实例让大家有个深入的了解。
function关键词声明,后面是函数的标识符get_bonus_goods,然后是形参$type_id。函数体内部,执行需要的运算。
然后,函数可以有返回值,也可以没有。上述例子,就有返回值,$row。根据顶部注释可以看到,返回的数组。如果是空,那就是[],如果有数据,那就是array结构。
再来看一个例子。
Laravel的helper函数。简单封装一下,调用reset返回数组的第一个值。因为reset名字不好记,使用head倒是直观许多。
判断是否windows平台。
大家看优秀的框架设计,有许多我们值得借鉴的地方。函数,要做最小化封装。功能尽量单一,可拆卸,灵活小巧。
尽量不要写一大堆代码,一大堆功能,严重依赖,一处用过,没有它用。那样的函数,不过是一堆代码,换个放的地方而已。
程序运行中,对于出现的异常情况,应尽量捕捉,且能够有相应的处理流程,避免程序意外的发生。
如上述的程序,使用catch语句捕捉三种异常情况,一个是 zeroExecption,一个是 Execption,一个是 Error。单个对象在错误发生的时候被抛出。
当然我们也可以手动抛出一个异常用于显式终端程序。
throw new Execption('Have an error here');
我们再看一些具体的实例。
看上述例子,catch内捕捉到的异常,基本不做处理,而是让程序隐藏异常信息,继续往下进行。需要的地方显式 throw即可。
上面这个例子,是需要手动处理的异常,直接处理就是。
看框架,读代码,不如动手写一写,马上去实践吧。