PHP 函数
我们在之前的学习中已经使用过大量的函数:var_dump以及非常多的数组函数,他们的特点是什么?
1. 都可以执行一些特定的功能
2. 都有特殊的名称
3. 都有或多或少的参数
4. 大多数函数都会有返回值,即使没有也会执行特定的操作
5. 不需要知道函数内部的实现逻辑
函数存在于大多数的程序语言中,它们被用于分隔哪些能够完成独立明确任务的代码。
函数名称必须以字母或者下划线开头,后面跟随字母、数字或者下划线,另外函数名是大小写不敏感的
PHP 的真正威力源自于它的函数。
在 PHP 中,提供了超过 1000 个内建的函数。
PHP 内建函数
如需查看所有数组函数的完整参考手册和实例,请访问我们的 PHP 参考手册。
PHP 函数
我们之前调用的都是PHP内置的函数,大多是基础的功能;但是,现实项目中,是无法满足我们的需求的。 因此,我们并不只局限于PHP内置函数,我们可以编写自己的函数来完成任何任务。
在本章中,我们将为您讲解如何创建自己的函数。
如要在页面加载时执行脚本,您可以把它放到函数里。
函数是通过调用函数来执行的。
你可以在页面的任何位置调用函数。
创建 PHP 函数
函数是通过调用函数来执行的。
function 函数名([参数名1[=值1], 参数名2[=值2], 参数名n[=值n]])
{
函数中的功能体(代码/语句)
[return 返回值]
}
说明:
1. 函数以function开始
2. function后面接空格,空格后接函数名
3. 函数名与变量命名规则基本一样,但是不同的是:函数名不区分大小写
4. 所谓参数其实就是变量
5. 函数名后接括号,括号内跟参数,参数全都有[](中括号)括起来了,代表参数可填可不填
6. 参数的话,参数后可以接(=)等号,等号接默认值。参数值也是用[](中括号)括起来的,代表选填
7. 函数后的参数变量,主要功能是把函数体外的变量值,传入函数体内来使用,函数体的变量和函数体外的变量通常是两个不同的变量。
8. 函数中的具体功能(功能体)用大括号括起来,代表这是一个函数的功能区间
9. 函数可以有返回值也可以没有返回值,用[](中括号)括起来的,代表选填。
10. return后接空格,空格后接返回值,若有return,return后的代码均不执行。
11. 函数的执行没有顺序关系,可以在定义处之前的位置调用
12. 函数不能被定义两次,即函数不能被重载
简单的实例:
一个简单的函数,在其被调用时能输出我的名称:
<html> <body> <?php function writeName() { echo "Kai Jim Refsnes"; } echo "My name is "; writeName(); ?> </body> </html>
输出:
My name is Kai Jim Refsnes
PHP 函数 - 添加参数
为了给函数添加更多的功能,我们可以添加参数。参数类似变量。
参数就在函数名称后面有一个括号内指定。
实例 1
下面的实例将输出不同的名字,但姓是相同的:
<html> <body> <?php function writeName($fname) { echo $fname . "Refsnes.<br>"; } echo "My name is"; writeName("Kai Jim"); echo "My sister's name is"; writeName("Hege"); echo "My brother's name is"; writeName("Stale"); ?> </body> </html>
输出:
My name is Kai Jim Refsnes.
My sister's name is Hege Refsnes.
My brother's name is Stale Refsnes.
实例 2
下面的函数有两个参数:
<html> <body> <?php function writeName($fname,$punctuation) { echo $fname . "Refsnes" . $punctuation . "<br>"; } echo "My name is"; writeName("Kai Jim","."); echo "My sister's name is"; writeName("Hege","!"); echo "My brother's name is"; writeName("Ståle","?"); ?> </body> </html>
输出:
My name is Kai Jim Refsnes.
My sister's name is Hege Refsnes!
My brother's name is Ståle Refsnes?
PHP 函数 - 返回值
如需让函数返回一个值,请使用 return 语句。
实例
<html> <body> <?php function add($x,$y) { $total=$x+$y; return $total; } echo "1 + 16 =" . add(1,16); ?> </body> </html>
输出:
1 + 16 = 17
函数的默认值
回顾函数的语法,只要稍作修改,给第二个参数后面加上等号,并且赋值,那么参数2就有了默认值, 函数调用时只需要传递一个参数1
function 函数名([参数1, 参数2 = 2)
{
函数中的功能体(代码/语句)
[return 返回值]
}
作用:
假设有一个系统函数,已经使用了很久,到处都有调用它的地方,如果需要添加新的逻辑,很有可能需要给它添加一个新的参数。 如果添加了新参数,这时函数的定义改变了,我们需要找到每个调用的地方去修改并增加这个参数。 如果给个默认值呢?默认值用来控制关闭新的逻辑,这样原先的代码不用做任何修改也不会执行到新的逻辑, 而新的代码,可以显示的指定参数打开新的逻辑。
实例
<html> <body> <?php function add($x,$y = 10) { $total=$x+$y; return $total; } echo "1 + 10 =" . add(1); ?> </body> </html>
由上面的实例看出,函数后的参数如果有默认值,默认值代表的这个参数可以不用传值进去。
如:echo "1 + 10 = " . add(1)中只是传了一个值 1 给 $x。