在本教程中,我们将学习如何使用PHP函数使代码更有组织性和可复用性。
函数是为执行特定任务而设计的命名代码块。一旦定义了一个函数,就可以重复使用它,而不必一次又一次地复制和粘贴代码块。函数可以接受一个或多个参数,这些参数是传递给函数的值。函数可以返回一个值,以便调用的脚本可以与函数进行通信。
要创建一个函数,可以使用以下语法:
<?php
function
function_name(参数1, 参数2,...){
// 函数体代码
}
函数以关键字function开头,然后是函数名。函数名可以是任何以字母或下划线(_)开头,后跟零个或多个字母、下划线和数字的字符串。函数名不区分大小写。它表示count()、COUNT()和Count()引用同一个函数。按照惯例,PHP的内置函数都是小写的。
在函数名后面的括号()中,可以指定一个或多个参数。如果一个函数接受多个参数,则每个参数之间必须用逗号分隔。
大括号{}中的代码是一个函数体。您可以将PHP代码、HTML代码或混合了PHP和HTML代码放在它的主体中。例如,下面的函数显示网页的标题:
display_header(
$header
){
echo
'<h1>'
.
'</h1>'
;
或者
?>
<h1><?php
; ?></h1>
要调用一个函数,只需输入函数名和括号(), 如下所示:
display_header();
函数可以接受一个或多个参数。传递参数给函数有两种方法:按值传递参数和按引用传递参数。
让我们看下面的例子:
increase(
$x
=
+ 1;
'在函数内 x = '
'<br />'
= 10;
);
'在函数外 x = '
输出:
在函数内 x = 11
在函数外 x = 10
因此,increase()函数没有更改$x的值。它只在函数内部改变。在本例中,我们是将$x按值传递给increase()函数。该函数实际上使用的是参数的副本。
通过引用传递允许直接访问变量,而不是访问其副本,以便可以在函数中更改其值。若要通过引用将参数传递给函数,参数必须是变量,并在参数前面添加与号(&)。
例如,我们重新定义increase()函数,如下所示:
increase(&
我们在要通过引用传递的参数$x前面加上一个与号(&)。通过引用传递,$x的值不仅在函数内部而且在函数外部都发生了更改。
在函数外 x = 11
PHP函数允许您将默认值传递给它的参数。要为参数指定默认值,可以在函数声明中为参数指定标量值。注意,只接受标量值作为参数的默认值。
让我们看一下下面的例子:
,
$inc
= 1){
+
,10);
// 20
// 21
首先,我们创建了接受两个参数的increase()函数。为了设置$inc参数的默认值,我们在其名称后面使用了赋值操作符(=)和默认值(1)。
第一次调用increase()函数时,我们传递了两个参数。第二次调用increase()函数,但是这次我们忽略了第二个参数。在本例中,第二个参数将使用默认值1。
具有默认值的参数也称为可选参数。
有时,如果参数的数量不是固定的将会很有用的,例如,get_total()函数可以计算传递的任意个参数的总数。要做到这一点,你需要使用三个方便的PHP内置函数:
func_get_args()返回一个参数数组。func_num_args()返回参数的数量。func_get_arg(arg_num)从参数中返回一个特定的参数。
下面的示例演示了如何使用这些函数来写get_total()函数:
get_total(){
$num
= func_num_args();
$total
= 0;
for
(
$i
<
++){
$arg
= func_get_arg(
if
is_numeric
)){
+=
return
get_total(1,2,3);
// 6
PHP从版本5开始引入类型提示。类型提示允许函数强制将参数转换为特定的类、接口、数组或可调用的对象。
注意,类型提示不能与标量(如字符串、整数或trait)一起使用。
请看下面的例子:
class
Person{
//
hire(Person
$p
array
$info
hire(
new
Person(),
'type'
=>
'全职'
'job title'
'PHP程序员'
)
我们将在PHP类和对象章节中学习PHP类和对象。
函数通常根据参数进行处理并向调用者(另一个函数或脚本)返回一个值。要从函数返回值,可以使用return语句。
当PHP遇到return语句时,它将立即终止函数并返回值。让我们看看下面的例子:
// 求两个值中的最大值
find_max(
$a
$b
>
else
$m
= find_max(10,20);
//20
find_max()函数将返回两个参数中的最大值。
如果希望返回多个值,可以返回一个数组。请看下面的例子:
rgb(){
$rgb
'red'
'green'
'blue'
$color
= rgb();
'<pre>'
print_r(
'</pre>'
rgb()函数将返回一个包含多个值的数组。
默认情况下,如果函数没有指定任何返回值,则返回NULL。
函数也可以返回引用而不是值。要从函数中返回引用,需要在函数名前面加上&(与号):
$str
'the'
'function'
'return-by-reference'
&get(
$index
global
> 0 &&
count
))
[
];
null;
$elem
=& get(1);
'functions'
var_dump(
在PHP中,一个函数可以嵌套在另一个函数中。
让我们看看下面的例子:
$c
max(
$y
?
:
max(max(
),
max(3,20,7);
函数find_max()用于查找三个参数中的最大值。在find_max()函数中,我们定义了另一个名为max()的函数,它被称为嵌套函数,用于查找两个输入参数中的最大值。
在PHP中,可以将函数名存储在字符串变量中,并使用该变量来调用该函数。如果希望在运行时动态执行函数,变量函数非常有用。
下面的例子演示了如何使用变量函数:
/**
* 找出两个参数中的最大值
* @param int $a
* @param int $b
* @return 最大值
*/
* 找出两个参数中的最小值
* @return 最小值
find_min(
$f
'find_max'
(10,20);
// 20;
'find_min'
// 10;
首先,我们定义了两个函数:find_min()和find_max()。然后,我们通过$f字符串变量去调用这些函数。
注意,您需要在变量后面加上括号,以便调用由变量的值指定的函数。
我们还可以定义一个没有指定名称的函数。我们称这个函数为匿名函数或闭包。我们经常使用匿名函数作为回调参数的值。
例如,usort()函数可以使用用户定义的比较函数根据数组的值排序。
我们可以传递一个匿名函数给usort()函数,如下所示:
'PHP 闭包'
'PHP 匿名函数'
'PHP 函数'
// 根据字符串的长度进行排序
usort(
strlen
) -
});
我们定义了一个匿名函数来比较两个字符串的长度。usort()函数根据字符串长度的顺序对$a字符串数组进行排序。
函数在PHP中非常重要。使用函数有以下几个好处:
原文链接:https://codingdict.com/