函数是指一段在一起的、可以做某一件事儿的程序。也叫做子程序、(OOP中)方法。
一个较大的程序一样平常应分为多少个程序块,每一个模块用来实现一个特定的功能。所有的高等措辞中都有子程序这个观点,用子程序实现模块的功能。在C措辞中,子程序的浸染是由一个主函数和多少个函数构成。由主函数调用其他函数,其他函数也可以相互调用。同一个函数可以被一个或多个函数调用任意多次。
在程序设计中,常将一些常用的功能模块编写成函数,放在函数库中供公共选用。要长于利用函数,以减少重复编写程序段的事情量。

函数分为全局函数、全局静态函数;在类中还可以定义布局函数、析构函数、拷贝布局函数、成员函数、友元函数、运算符重载函数、内联函数等。
我们可以看到,这里百度百科讲解的非常详细,能够做某件事情(有些过于口语文了)的程序称为函数,或者方法。
很多人懵了,函数和方法有什么差异吗?
事实上,在面向过程或函数式编程中,function func_name(){} 称之为函数,在面向工具中,函数又可以被类本身调用,利用$this 或者 self等关键字进行调用,这个时候函数相对付类和工具而言便是方法了,这实在是一个场景的名词罢了。
就像一个会做衣服的女裁缝,她是一个裁缝,能剪裁衣服,做洋装,裤子,衬衫等,在事情中成为相机行事的裁缝,但是在家里,她用剪刀针线缝纫机等等这些剪裁衣服的技能又被家里人认为这是针线活,是缝缝补补,是母亲和妇女角色担当的事情,实在都是对布料进行的加工剪裁,但是在不同的场景中,它就被定义为不同的角色,也就拥有了不同的称谓。
难道程序员不是这样吗?事情的时候写代码用电脑是事情,回家后写代码用电脑是父母亲戚眼中的玩电脑不务正业宅男等标签人物。(心疼程序员一秒钟,滴,一秒钟过了)
程序中函数的利用非常广泛,只要有复用,就会有封装,而最初最基本的封装便是函数!
我们看这样一个例子:
哀求通过PHP实现表格的隔行换色。
在bootstrap中的table样式中,我们常用 table-striped样式来实现表格的各行换色,这是bootstrap的CSS定义样式即可办理。而分开bootstrap的框架的时候我们可以通过自定义样式
table tr:nth-child(odd){background:#F4F4F4;}
table tr:nth-child(even){color:#C00;}
这样来办理(这只是一个大略的例子),那么如果说想把这个问题完备的交给PHP来办理,又该如何处理呢?
要知道隔行换色,恰好便是2的递增,而2的递增判断我们这里只要判断当前行是否是奇数偶数即可,对付整数而言,非奇即偶,只要判断个中一个即可。那么我们这里想起了之前如何判断奇数偶数的代码最核心的代码便是 if($num%2==0)这样的判断了,好,我们这里来写一下真正的代码。
判断是否是奇数的函数
这段代码虽然写完了,也很大略,可是我们要实现的是隔行换色,根据奇数偶数来显示颜色啊,还得拿到颜色才行。
那么,这时候,有同学已经想到了,只要在循环的时候做一个判断就可以了
循环中止定该行是否是奇数还是偶数进行换色
效果如图:
隔行换色的效果
可是如果很多页面都要隔行换色,这里就要写很多的判断了,以是这里还须要再度编写一个函数来完善它。
利用函数来获取奇数偶数对应的颜色
本次封装函数为
根据奇偶数来返回颜色
效果如图:
PHP判断奇偶数各行换色
由此我们可以看到,根据详细的需求,确切的剖析拆解步骤进行小功能的组装,利用函数的相互调用和逻辑连贯,能达到更加高内聚低耦合的代码构造,我们让函数只完成个中的一小部分功能,这样函数能得到最大的复用,如果将上面两个函数融为一体,不才次需求变更的时候,颜色被改变了,那么该函数的功能就失落效了,而上文中将代码拆解,面对颜色改变的需求,我们只要再封装其余一个函数来获取颜色即可,奇偶数的判断这部分代码得到了最大的复用,这也能担保我们的代码更加整洁,而且方便掩护,出错率更少,由于单元模块的质量已经经由了测试和担保,是可以参与实际的质量评估的,只要再扩展函数中测试质量,并完成整体测试即可,这也能够最大的担保我们代码的质量安全和效率等等。
在我们的实际事情中,古人已经为我们封装了很多操作数据库啊 操作文件等方法,我们可以只管即便的复用它,而不是一味的复制粘贴,这也会给我们的代码带来大量冗余,以是多用函数,多封装,能让我们的编程风格和思维更加的OOP!