写点什么

【web 开发基础】PHP 自定义函数之函数声明 -PHP 快速入门 (24)

作者:迷彩
  • 2022-10-29
    广东
  • 本文字数:2584 字

    阅读完需:约 8 分钟

前言


函数就是由一定的功能的一些语句组织在一起的一种形式,定义函数的目的就是将程序按功能分块,方便程序的使用、管理、阅读和调试。函数有两种,一种是别人写好的或是系统内部提供的函数,即是内置函数,你只要知道这个函数是干什么的,自己会用就可以,不用管里面究竟是怎么实现的。另一种函数就是自定函数,顾名思义就是需要我们根据自己的需求自己实现的函数。函数的概念比较抽象,会有一些读者难以理解。

函数是什么(函数的定义)


像数学中的函数一样,在数学中,y=f(x)是基本的函数表达形式,x 可以看作参数,y 可以看作是返回值,所以函数定义就是一个被命名的、独立的代码段,它执行特定的任务,并可能给调用它的程序返回一个值。该定义中的各部分含义如下:

  1. 函数是被命名的:每个函数都有唯一的名称,在程序的其他部分使用该名称,可以执行函数中的语句,称为调用函数

  2. 函数是独立的:无需程序其他部分的干预,函数便能够单独执行其任务.

  3. 函数执行特定的任务:任务是程序运行时所执行的具体工作,如将一行文本输出到浏览器,对数组进行排序,计算立方根等等

  4. 函数可以将一个返回值返回给调用它的程序:程序调用函数时,将执行该函数中的语句,而这些语句可以将信息返回给调用它们的程序

PHP 的模块化程序结构都是通过函数或对象来实现的,函数则是将复杂的 PHP 程序分为若干个功能模块,每个模块都编写成一个 PHP 函数,然后通过在脚本中调用函数,以及在函数中调用函数来实现一些大型问题的 PHP 脚本编写。

使用函数的优势有以下几点:

  1. 提高程序的重用性

  2. 提高软件的可维护性

  3. 提高软件的开发效率

  4. 提高软件的可靠性

  5. 控制程序设计的复杂性

函数是程序开发中非常重要的内容,因此对函数的定义,调用和值的返回等,尤为重要,一定要注重理解和应用,通过上机调试加以巩固。

自定义函数

编写函数是首先要明白你要做什么,也就是你希望函数实现什么功能,即是所谓的明确需求.知道这一点后,编写起来便不会太难。在 PHP 中除了已经提供给我们使用的系统函数,还可以根据模块需要自定义函数。所谓的系统函数是在 PHP 中提供的可以直接使用的函数,每个系统函数都是一个完整的可以完成指定任务的代码段。学会一个系统函数,就多一个 PHP 的功能。在开发时,一些常用的功能都可以借助调用系统函数来完成。如果某些功能模块在 PHP 中没有提供系统函数,就需要根据自己的需求来自定义函数。完成同样的任务,使用系统函数的执行效率会比自定义函数高,但两种函数在程序中的调用方式是没有区别的。

函数声明


在 PHP 中声明一个自定义的函数的语法格式如下:

<?phpfunction 函数名([参数1,参数2,...,参数n]) //函数头 定义函数式{    // 要执行的代码:函数体  	return 返回值; //可以从函数中返回一个值,就是我们数学中的f(x)} //函数体一定要用花括号括住,在编程中一般括都是成对出现的?>
复制代码

PHP 函数准则:

  • 函数的名称应该提示出它的功能

  • 函数名称以字母或下划线开头(不能以数字开头)


函数的语法格式说明:

  1. 每个函数的第一行都是函数头,又声明函数的关键字 function,函数名和参数列表三部分组成,其中每一部分完成待定的功能

  2. 每个自定义函数都必须使用 function 关键字声明

  3. 函数名可以代表整个函数,可以将函数命名为任何名称,只要遵循变量的命名规则即可。每个函数都有唯一的名称,但需要注意的是,在 PHP 中不能使用函数重载,所以不能定义重名的函数,也包括不能和系统函数同名,否则造成冲突。给函数指定一个描述其功能的名称是个不错的主意。命名一定要做到见名知意,所以在编程中其名也是一门艺术。

  4. 声明函数时函数名后面的括号也是必须有的,在括号中表明了一组可以接受的参数列表,参数就是声明的变量,然后在调用函数时递给它值。参数列表可以没有,也可以有一个或多个参数,多个参数使用逗号分隔。

  5. 函数体位于函数头后面,用花括号括起来。实际的工作是在函数体中完成的。函数被调用后,首先执行函数体中的第一条语句,执行到 return 语句或最外面的花括号后结束,返回到调用的程序,在函数体中可以使用任何有效的 PHP 代码,甚至是其他的函数或类的定义也可以在函数体中声明。

  6. 使用关键字 return 可以从函数返回一个值,在 return 后面加上一个表达式,程序执行到 return 语句时,该表达式将被计算,然后返回到调用程序处继续执行。函数的返回值为该表达式的值。


因为参数列表和返回值在函数定义时都是可选的,其他的部分是必须有的,所以声明函数时通常有以下几种方式:

1、在声明函数时可以没有参数列表

<?php		function 函数名(){    	函数体;(语句块)//你想让函数做的一些事      return 返回值;    }?>
复制代码

2、在声明函数时可以没有返回值

<?php		function 函数名([参数1,参数2,...,参数n]){    	函数体;(语句块)//你想让函数做的一些事    }?>
复制代码

3、在声明函数时可以没有参数列表和返回值

<?php		function 函数名(){    	函数体;(语句块)//你想让函数做的一些事    }?>
复制代码

4、有参数列表有返回值

<?php		function 函数名([参数1,参数2,...,参数n]){    	函数体;(语句块)//你想让函数做的一些事      return 返回值;    }?>
复制代码

我们在前面学习 for 循环的时候写过一个双层循环输出九九乘法表,如果在一个程序中的不同地方多次使用同样的输出,显然每次都定义一个这样的双层循环不太合适。软件会变得很复杂,不仅代码会非常臃肿,而且可维护性也非常差,开发效率和可靠性都会降低。解决这样的问题就是将这个特定的任务编写成一个模块,也就是将完成功能的所有代码使用花括号括起来,并起一个名字,然后使用 function 关键字声明为一个函数。这样,在需要输出此九九乘法表的地方,只要通过函数名调用一下,就会执行一次函数内部的代码,并在调用的位置输出数字。函数只被声明一次,就可以在任何需要的地方调用执行,提高了代码的可重用性。而且只要函数内部的代码有所改动,所有调用该函数的地方都会随着改变,提高了代码的可维护性,因此开发效率和可靠性都会提高。将输出九九乘法表的代码改动如下:

<?phpfunction multiplicationTable(){	for($i=1;$i<=9;$i++){		for($j=1;$j<=$i;$j++){			echo "$j x $i = " . ($j*$i) . "&nbsp;&nbsp;";		}		echo "<br>";	}}
复制代码

上述代码中定义了一个 multiplicationTable()函数,只是需要输出数字,也无需外部变量控制的地方,所以无需参数列表和返回值,这是最简单的自定义函数。


上面的函数没有被调用是没有任何输出的,因为没有调用函数体内的代码不会执行,调用方法很简单:

multiplicationTable();
复制代码

执行结果:


发布于: 刚刚阅读数: 4
用户头像

迷彩

关注

我的工作是常年写bug|公众号:编程架构之美 2020-06-18 加入

修bug的菜鸟~公众号:“互联网有啥事”已改名为“编程架构之美”

评论

发布
暂无评论
【web 开发基础】PHP 自定义函数之函数声明 -PHP 快速入门 (24)_函数_迷彩_InfoQ写作社区