php基础教程 第九步 自定义函数
自定义函数
在之前的课程我们有使用到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基础教程 第九步 自定义函数相关推荐
- python函数自定义教程_Python中自定义函数的教程
在Python中,定义一个函数要使用def语句,依次写出函数名.括号.括号中的参数和冒号:,然后,在缩进块中编写函数体,函数的返回值用return语句返回. 我们以自定义一个求绝对值的my_abs函数 ...
- vba 提取 json某个值_Excel中提取不重复值的方法汇总(5种基础+VBA+1个自定义函数)...
各位朋友,你们好, 今天和你们分享Excel中提取不重复值的几种方法,着重介绍[5种]基础操作方法,另外附送一个VBA去重代码,拿去就可以直接使用. 一.基础操作方法 1.数据工具直接去重(见下图) ...
- php基础教程 第一步 环境配置及helloworld
PHP 是服务器端脚本语言.全称为 Hypertext Preprocessor 为超文本预处理器. 据说php8不久后也要发布了,趁着8还没有发布赶紧写一个php5到php7(在基础教程写完后将写p ...
- C++语言篇 第九章 自定义函数详解
序言 一个 C++ 程序无论大小,都由一个或者多个函数组成,而且其中必须有且只有一个函数main(),称之为"主函数". 由函数 main()调用其他函数来完成程序的特定功能.当然 ...
- Python基础教程-第6章-函数
6.1 自定义函数 函数执行特定的操作并返回一个值1,你可以调用它.一般而言,要判断某个对象是否可调用,可使用内置函数callable. import math x = 1 y = math.sqrt ...
- python基础教程:filter(),map()函数用法
filter()函数是什么 filter(func, iterable) filter接收的是可迭代对象中的每个元素作为func的参数,返回的是bool值,函数中设置的是判断条件 返回的是在bool值 ...
- Lcd1602液晶 基础教程 常用指令 自定义字符
此文章,你将会看到,或了解到 工作电压电流 引脚对应关系 基本操作时序 相关指令说明 显示一个字符 自定义字符的方法 工作电压电流 工作电流:2mA(5V) 背光Led:10-20mA 引脚对应关系 ...
- Python基础教程:高阶函数和函数嵌套
1.高阶函数: 由于python中一切皆对象,变量是对象,函数也是对象,函数也能像变量那样进行传递.一个函数可以作为参数传给另外一个函数,或者一个函数的返回值为另外一个函数(若返回值为该函数本身,则为 ...
- [转载] 【基础教程】Python input()函数:获取用户输入的字符串
参考链接: 从Python中控制台获取输入 input() 是 Python 的内置函数,用于从控制台读取用户输入的内容.input() 函数总是以字符串的形式来处理用户输入的内容,所以用户输入的内容 ...
最新文章
- sybase 数据导入mysql_Windows环境下Sybase12.5 数据库创建与导入数据库.docx
- mysql创建generator字段_springmvc+mybatsi-generator生成不了字段注释的解决方案
- VTK:几何对象之PlatonicSolids
- [css] 你知道的等高布局有多少种?写出来
- 一个关于Remoting的简单例子
- (相当全面)node.js 初体验
- 体验Microsoft Expression Blend 3 Preview
- oracle 删除已备份归档,通过RMAN联机全库备份,包括控制文件,归档日志文件,备份成功后,删除已备份的归档日志。...
- 数据库基础 MySQL
- 一份超详细的VTD安装指南(内容含如何安装ubuntu系统及如何在ubuntu中安装显卡驱动)
- 在阿里云服务器网站添加子域名无法访问的处理
- 基于两输出一输入BP神经网络的传感器检测数据融合(附带MATLAB代码)
- SPSS Modeler 自动分类器学习笔记
- Slicer学习笔记(六十一)slicer下segmentation segment合并
- 抖音四面被拒,再战头条终获offer,在线面试指南
- linux下c使用lzma_linux lzma软件包下载 ...lzma-sdk.updatestar.com/
- 易语言超级算法转php,易语言 PHP RC4算法同步应用源码
- Excel数据透视表经典教程六《报表布局》
- iOS音频播放第三方框架FreeStreamer解析(全)
- ios 加载html图片变形,微信开发里面图片变形的问题
热门文章
- ASP.NET Core Filter如何支持依赖注入
- Jekins持续集成在ERP研发中的应用实践
- 如果淘宝双十一架构用. Net Core,如何“擒住”高并发、高可用、低延迟?
- 快速了解 ASP.NET Core Blazor
- Blazor带我重玩前端(六)
- 开源 一套 Blazor Server 端精致套件
- .NET Core 3.0之深入源码理解Kestrel的集成与应用(二)
- 基于 Roslyn 实现动态编译
- 学习究竟是为了什么?
- Redola.Rpc 集成 Consul 服务发现