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

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

前言

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

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

像数学中的函数一样,在数学中,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、在声明函数时可以没有参数列表

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

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

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

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

<?phpfunction函数名(){
函数体;(语句块)//你想让函数做的一些事    }
?>

4、有参数列表有返回值

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

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

<?phpfunctionmultiplicationTable(){
for($i=1;$i<=9;$i++){
for($j=1;$j<=$i;$j++){
echo"$jx $i= " . ($j*$i) . "&nbsp;&nbsp;";
    }
echo"<br>";
  }
}

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

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

multiplicationTable();

执行结果:

目录
相关文章
|
3天前
|
安全 大数据 编译器
PHP 8: 探索新特性及其对现代Web开发的影响
在这篇文章中,我们将深入探讨PHP 8的最新特性,包括JIT编译器、联合类型、匹配表达式等,并分析这些更新如何影响现代Web开发。通过具体示例和代码片段,本文旨在为开发者提供一个清晰的指南,以便更好地利用PHP 8的新功能优化和加速他们的应用程序。
10 2
|
3天前
|
编译器 测试技术 PHP
深入理解PHP 7的新特性及其对现代Web开发的影响
【7月更文挑战第12天】本文将探讨PHP 7版本中引入的关键改进和新增功能,以及这些变化如何优化了性能、提升了代码的可维护性,并促进了现代Web开发的最佳实践。通过具体示例,我们将深入了解这些新特性在日常开发中的应用,以及它们为开发者带来的实际益处。
10 2
|
3天前
|
PHP 开发者
PHP 8 新特性及其对现代Web开发的影响
PHP 8作为最新版本,引入了一系列强大的新特性和改进,这些变化不仅仅是语言本身的提升,更深刻地影响了现代Web开发的方式和效率。本文将深入探讨PHP 8的关键特性,分析其在开发实践中的应用和优势,帮助开发者更好地理解和利用这些新特性。 【7月更文挑战第12天】
9 1
|
5天前
|
安全 编译器 数据处理
PHP 8新特性及其对现代Web开发的影响
随着PHP 8的发布,这一广泛使用的服务器端脚本语言引入了多项新特性和性能改进。本文将深入探讨PHP 8的关键更新,包括JIT编译器、联合类型、命名参数、匹配表达式等,并分析这些变化如何影响现代Web开发实践,以及开发者如何利用这些新工具来构建更快、更安全、更易维护的应用程序。
8 0
|
10月前
|
关系型数据库 MySQL PHP
PHP 原生操作 Mysql
PHP 原生操作 Mysql
95 0
|
10月前
|
关系型数据库 MySQL 数据库连接
PHP 原生连接 Mysql
PHP 原生连接 Mysql
122 0
|
10月前
|
关系型数据库 MySQL Unix
PHP MySql 安装与连接
PHP MySql 安装与连接
176 0
|
18天前
|
NoSQL 关系型数据库 MySQL
linux服务器重启php,nginx,redis,mysql命令
linux服务器重启php,nginx,redis,mysql命令
26 1
|
2月前
|
关系型数据库 MySQL PHP
|
1月前
|
Ubuntu 关系型数据库 MySQL
ubuntu apt 安装wordpress所需所有的 一键脚本 扩展您的PHP似乎没有安装运行WordPress所必需的MySQL扩展。
ubuntu apt 安装wordpress所需所有的 一键脚本 扩展您的PHP似乎没有安装运行WordPress所必需的MySQL扩展。
23 0
ubuntu apt 安装wordpress所需所有的 一键脚本 扩展您的PHP似乎没有安装运行WordPress所必需的MySQL扩展。