自定义函数

在之前的课程我们有使用到php的系统函数,这些函数由系统定义。在开发中,有时候系统自带的函数满足不了我们开发时(或其它情况),我们可以自定义函数。顾名思义,自定义函数就是自己定义函数。
自定义函数的语法如下:

<?php
function 函数名称()
{该函数要执行的一些代码
}
?>

在以上自定义函数中,关键字为 function 随后接着函数名称,这个函数名称由自己定义。随后紧接着是一个圆括号,再接着是一个花括号。花括号中填写的是当前函数需要执行的一些代码。

最基础的自定义函数

查看了以上自定义函数的基本语法后,查看以下示例直观了解自定义函数:

<?php
function printInfo(){echo 'hello';
}
printInfo();
?>

根据自定义函数定义语法得知,以上代码中,使用function 关键字定义了一个函数,这个函数名为 printInfo,需要执行的代码是 echo 'hello';

定义完函数后,在下面使用函数的调用方法 函数名(); 调用了printInfo 函数 printInfo();

打开服务,访问php文件,结果如下:

成功执行了代码 echo 'hello';

带参数的函数

参数?什么是参数?可能有一些初学者会发出这个疑问。在了解参数概念前我们需要知道什么是函数。函数我们可以当做是一个功能,好比做饭,电饭锅的功能是做饭,但是需要什么原料才能做饭?当然是需要米的加入才能做饭,当然,也要有水。这个米和水就是参数。

回到正题,当我们编写一个函数,要完成两个变量的相加运算,那么我需要给两个变量给这个函数。那么这两个变量,则是参数。查看以下示例了解两个数相加的自定义函数:

<?php
function sum_($a,$b){echo 'a+b='.($a+$b);
}
sum_(1,2);
?>

以上代码中,定义了一个名字叫做 sum_的函数,可以给这个函数两个参数,第一个参数是a,第二个参数是b,两个参数之间使用逗号隔开(可以多个参数,不止可以传2个参数)。在函数的代码中,输出a+b的值。
新手读者可以查看 'a+b='.($a+$b)代码,可以发现 'a+b='($a+$b) 之间使用了小数点 . 进行链接,为什么不直接写成 'a+b='.$a+$b呢?如果使用 'a+b='.$a+$b 的话,计算机并不会直接计算两个变量a+b,而且会直接使用小数点链接变量a,这样就等于 a+b=’.$a 随后再加上 b 这个变量。但是由于前面的值是一个字符串,后面的值是一个数字,一般情况下,不同类型并不能做加减之类的运算,所以我们需要使用括号把变量 a+b 先计算后,得出一个数字,再进行连接。
随后调用sum_函数,并且在函数的括号中,第一个值写的是1,这个1对应的是函数中的变量a,第二个写的是2,这个2对应是函数中的变量b。在此我们发现,传参的值是可以按照位置进行对应的。
最终结果如下:

返回值函数

学习了以上的带参数函数,返回值函数学习起来也是非常快捷。返回值函数是函数会返回一个值。例如刚刚计算了a+b,我们需要把这个结果返回给一个变量进行接收,把a+b的结果赋值给一个变量,查看以下示例完成:

<?php
function sum_($a,$b){return $a+$b;
}
$a=sum_(1,2);
echo $a;
?>

以上代码中,sum_函数中使用了return关键字,return关键字的作用则是返回一个值。在这里写作 return $a+$b; 表示返回a+b的值。
在调用函数时,我们写为 $a=sum_(1,2);,在这里,我们把sum函数中return 的a+b值赋值给了变量a。随后输出变量a的值:

输出为3结果正确。
在以上示例中,我们发现调用函数后,返回的值给予了变量a,可是函数里面接受传参有一个参数也是a变量,这两个变量是否是同一个值?答案是“这两个变量并不是同一个值”。
怎么理解这两个变量呢?打个比方,你们学校有两个人叫小明,你们校长也叫做小明,你们班里面也有个小明,当在班里面说的小明自然是你们班级里的,在班级外面学校广播说话的小明肯定是校长。所以这个变量a,在函数里面则是表示函数里面的变量a。在函数外面则是表示的是函数外部的a变量。

为了方便理解,我以上函数示例中的代码都是一行,但是函数中的函数并不是只能写一行。大家可以自行尝试,查看效果。在此还要提醒的一点是,函数里面使用return,就表示函数在此跳出,结束函数的执行,需要注意函数的使用,在没有完成函数逻辑时,或者说没有完成你想要的逻辑时,别使用return,这样会使你的函数跳出,结束函数。

php基础教程 第九步 自定义函数相关推荐

  1. python函数自定义教程_Python中自定义函数的教程

    在Python中,定义一个函数要使用def语句,依次写出函数名.括号.括号中的参数和冒号:,然后,在缩进块中编写函数体,函数的返回值用return语句返回. 我们以自定义一个求绝对值的my_abs函数 ...

  2. vba 提取 json某个值_Excel中提取不重复值的方法汇总(5种基础+VBA+1个自定义函数)...

    各位朋友,你们好, 今天和你们分享Excel中提取不重复值的几种方法,着重介绍[5种]基础操作方法,另外附送一个VBA去重代码,拿去就可以直接使用. 一.基础操作方法 1.数据工具直接去重(见下图) ...

  3. php基础教程 第一步 环境配置及helloworld

    PHP 是服务器端脚本语言.全称为 Hypertext Preprocessor 为超文本预处理器. 据说php8不久后也要发布了,趁着8还没有发布赶紧写一个php5到php7(在基础教程写完后将写p ...

  4. C++语言篇 第九章 自定义函数详解

    序言 一个 C++ 程序无论大小,都由一个或者多个函数组成,而且其中必须有且只有一个函数main(),称之为"主函数". 由函数 main()调用其他函数来完成程序的特定功能.当然 ...

  5. Python基础教程-第6章-函数

    6.1 自定义函数 函数执行特定的操作并返回一个值1,你可以调用它.一般而言,要判断某个对象是否可调用,可使用内置函数callable. import math x = 1 y = math.sqrt ...

  6. python基础教程:filter(),map()函数用法

    filter()函数是什么 filter(func, iterable) filter接收的是可迭代对象中的每个元素作为func的参数,返回的是bool值,函数中设置的是判断条件 返回的是在bool值 ...

  7. Lcd1602液晶 基础教程 常用指令 自定义字符

    此文章,你将会看到,或了解到 工作电压电流 引脚对应关系 基本操作时序 相关指令说明 显示一个字符 自定义字符的方法 工作电压电流 工作电流:2mA(5V) 背光Led:10-20mA 引脚对应关系 ...

  8. Python基础教程:高阶函数和函数嵌套

    1.高阶函数: 由于python中一切皆对象,变量是对象,函数也是对象,函数也能像变量那样进行传递.一个函数可以作为参数传给另外一个函数,或者一个函数的返回值为另外一个函数(若返回值为该函数本身,则为 ...

  9. [转载] 【基础教程】Python input()函数:获取用户输入的字符串

    参考链接: 从Python中控制台获取输入 input() 是 Python 的内置函数,用于从控制台读取用户输入的内容.input() 函数总是以字符串的形式来处理用户输入的内容,所以用户输入的内容 ...

最新文章

  1. sybase 数据导入mysql_Windows环境下Sybase12.5 数据库创建与导入数据库.docx
  2. mysql创建generator字段_springmvc+mybatsi-generator生成不了字段注释的解决方案
  3. VTK:几何对象之PlatonicSolids
  4. [css] 你知道的等高布局有多少种?写出来
  5. 一个关于Remoting的简单例子
  6. (相当全面)node.js 初体验
  7. 体验Microsoft Expression Blend 3 Preview
  8. oracle 删除已备份归档,通过RMAN联机全库备份,包括控制文件,归档日志文件,备份成功后,删除已备份的归档日志。...
  9. 数据库基础 MySQL
  10. 一份超详细的VTD安装指南(内容含如何安装ubuntu系统及如何在ubuntu中安装显卡驱动)
  11. 在阿里云服务器网站添加子域名无法访问的处理
  12. 基于两输出一输入BP神经网络的传感器检测数据融合(附带MATLAB代码)
  13. SPSS Modeler 自动分类器学习笔记
  14. Slicer学习笔记(六十一)slicer下segmentation segment合并
  15. 抖音四面被拒,再战头条终获offer,在线面试指南
  16. linux下c使用lzma_linux lzma软件包下载 ...lzma-sdk.updatestar.com/
  17. 易语言超级算法转php,易语言 PHP RC4算法同步应用源码
  18. Excel数据透视表经典教程六《报表布局》
  19. iOS音频播放第三方框架FreeStreamer解析(全)
  20. ios 加载html图片变形,微信开发里面图片变形的问题

热门文章

  1. ASP.NET Core Filter如何支持依赖注入
  2. Jekins持续集成在ERP研发中的应用实践
  3. 如果淘宝双十一架构用. Net Core,如何“擒住”高并发、高可用、低延迟?
  4. 快速了解 ASP.NET Core Blazor
  5. Blazor带我重玩前端(六)
  6. 开源 一套 Blazor Server 端精致套件
  7. .NET Core 3.0之深入源码理解Kestrel的集成与应用(二)
  8. 基于 Roslyn 实现动态编译
  9. 学习究竟是为了什么?
  10. Redola.Rpc 集成 Consul 服务发现