自定义函数
在之前的课程我们有使用到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,这样会使你的函数跳出,结束函数。