【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();

执行结果:

目录
相关文章
|
1月前
|
XML 前端开发 JavaScript
PHP与Ajax在Web开发中的交互技术。PHP作为服务器端脚本语言,处理数据和业务逻辑
本文深入探讨了PHP与Ajax在Web开发中的交互技术。PHP作为服务器端脚本语言,处理数据和业务逻辑;Ajax则通过异步请求实现页面无刷新更新。文中详细介绍了两者的工作原理、数据传输格式选择、具体实现方法及实际应用案例,如实时数据更新、表单验证与提交、动态加载内容等。同时,针对跨域问题、数据安全与性能优化提出了建议。总结指出,PHP与Ajax的结合能显著提升Web应用的效率和用户体验。
46 3
|
1月前
|
SQL 安全 前端开发
PHP与现代Web开发:构建高效的网络应用
【10月更文挑战第37天】在数字化时代,PHP作为一门强大的服务器端脚本语言,持续影响着Web开发的面貌。本文将深入探讨PHP在现代Web开发中的角色,包括其核心优势、面临的挑战以及如何利用PHP构建高效、安全的网络应用。通过具体代码示例和最佳实践的分享,旨在为开发者提供实用指南,帮助他们在不断变化的技术环境中保持竞争力。
|
1月前
|
SQL 安全 PHP
探索PHP的现代演进:从Web开发到框架创新
PHP是一种流行的服务器端脚本语言,自诞生以来在Web开发领域占据重要地位。从简单的网页脚本到支持面向对象编程的现代语言,PHP经历了多次重大更新。本文探讨PHP的现代演进历程,重点介绍其在Web开发中的应用及框架创新,如Laravel、Symfony等。这些框架不仅简化了开发流程,还提高了开发效率和安全性。
31 3
|
1月前
|
前端开发 PHP 云计算
PHP在Web开发中的不可替代性###
——守护Web开发基石,PHP的独特魅力与广泛应用解析
|
1月前
|
SQL 安全 PHP
探索PHP的现代演进:从Web开发到框架创新
PHP 自发布以来一直在 Web 开发领域占据重要地位,历经多次重大更新,从简单的脚本语言进化为支持面向对象编程的现代语言。本文探讨 PHP 的演进历程,重点介绍其在 Web 开发中的应用及框架创新。自 PHP 5.3 引入命名空间后,PHP 迈向了面向对象编程时代;PHP 7 通过优化内核大幅提升性能;PHP 8 更是带来了属性、刚性类型等新特性。
30 3
|
1月前
|
XML 安全 PHP
PHP与SOAP Web服务开发:基础与进阶教程
本文介绍了PHP与SOAP Web服务的基础和进阶知识,涵盖SOAP的基本概念、PHP中的SoapServer和SoapClient类的使用方法,以及服务端和客户端的开发示例。此外,还探讨了安全性、性能优化等高级主题,帮助开发者掌握更高效的Web服务开发技巧。
|
1月前
|
弹性计算 算法 PHP
PHP在现代Web开发中的不可替代性###
【10月更文挑战第27天】 如今互联网技术日新月异,前后端开发逐渐融合,但PHP凭借其灵活性、广泛应用和深厚社区基础,依然在Web开发领域占据重要地位。本文将深入探讨PHP为何能在现代Web开发中保持其不可替代的地位,并分析其未来的发展趋势。 ###
48 1
|
1月前
|
Unix Linux PHP
PHP在Web开发中的平台独立性优势###
本文探讨了PHP的跨平台特性,阐述其作为服务器端脚本语言如何在不同操作系统上无缝运行,以及这一特性为开发者和组织带来的便利性和成本效益。 ###
|
1月前
|
人工智能 搜索推荐 PHP
PHP在Web开发中的璀璨星辰:构建动态网站的幕后英雄###
【10月更文挑战第25天】 本文将带您穿越至PHP的宇宙,揭示其作为Web开发常青树的奥秘。通过生动实例与深入解析,展现PHP如何以简便、高效、灵活的姿态,赋能开发者打造动态交互式网站,同时不忘探讨其在新时代技术浪潮中面临的挑战与机遇,激发对技术创新与应用的无限思考。 ###
36 1
|
1月前
|
测试技术 持续交付 PHP
PHP在Web开发中的应用与最佳实践###
【10月更文挑战第25天】 本文将深入探讨PHP在现代Web开发中的应用及其优势,并分享一些最佳实践来帮助开发者更有效地使用PHP。无论是初学者还是有经验的开发者,都能从中受益。 ###
67 1
下一篇
DataWorks