函数是一个语句块,仅当在程序中的某个位置调用它时才执行。函数为不同的输入提供相同代码的可重用性,从而节省时间和资源。 PHP 有许多内置函数,其中常见的函数之一是 echo(),它用于打印输出。用户还可以创建自己的函数,也称为用户定义函数。
创建函数
在 PHP 中,创建函数以关键字function开头。 function 后跟函数名称和包含函数参数(如果有)的括号。最后,它包含了语句块,也称为函数体。
调用函数
定义函数后,可以在程序中的任何位置调用它,后面跟着函数名通过包含函数参数的括号(如果有)和分号 ;。
语法
//定义函数
function function_name(parameters) {
statements;
}
//调用函数
function_name(parameters);
示例:没有参数的函数
在下面的示例中,创建了一个函数HelloWorld函数来打印Hello World!。它不需要任何参数来执行。
<?php
function HelloWorld() {
echo "Hello World!";
}
HelloWorld();
?>
上述代码的输出将是:
Hello World!
参数
参数(或也称为参数)是用于在函数内部传递信息的变量。在上面的示例中,该函数没有任何参数。但用户可以创建具有单个或多个参数的函数。函数可以进一步使用参数的值来实现所需的结果。
示例:带参数的函数
在下面的示例中,函数名为 MyFunction,需要两个整数作为参数,并以所需的样式打印两个数字的和。
<?php
function MyFunction($x, $y){
$z = $x + $y;
echo "Sum of $x and $y is: $z.\n";
}
$a = 15;
$b = 10;
MyFunction($a, $b);
?>
上述代码的输出将是:
Sum of 15 and 10 is: 25
返回值的函数
函数也可用于返回值。在下面的示例中,名为 MyFunction 的函数返回两位数之和。
<?php
function MyFunction($x, $y){
$z = $x + $y;
return $z;
}
$a = 15;
$b = 10;
echo MyFunction($a, $b);
?>
上述代码的输出将为:
25
默认参数值
可以在创建函数时将默认值分配给参数。当不带参数调用该函数时,它将使用默认值。
示例:
在下面的示例中,MyFunction 函数用于添加两个、三个和四个整数。当在没有给定参数的情况下调用函数时,该函数将使用给定参数的默认值。参数的默认值是在定义函数时设置的。
<?php
function MyFunction($p, $q, $r=0, $s=0){
return $p+$q+$r+$s;
}
$a = 15; $b = 10; $c = 5; $d = 1;
echo MyFunction($a,$b)."\n";
echo MyFunction($a,$b,$c)."\n";
echo MyFunction($a,$b,$c,$d)."\n";
?>
上述代码的输出将是:
25
30
31
函数参数的数据类型声明
在 PHP 中,不需要声明函数参数的数据类型。 PHP 根据变量的值自动采用变量的数据类型。当通过函数传递字符串而不是数字数据类型时,这可能会导致错误。因此,在 PHP 7 及以后版本中,添加了类型声明。这提供了一个指定参数数据类型的选项。
示例:
在下面的示例中,定义了一个名为 MyFunction 的函数,它采用整数数据类型作为参数。
<?php
function MyFunction(int $x, int $y){
$z = $x + $y;
return $z;
}
$a = 15;
$b = 10;
echo MyFunction($a, $b);
?>
上述代码的输出将是:
25
通过添加 strict 声明,如果数据类型不匹配,它会抛出Fatal error "致命错误"。这可以通过将 PHP 脚本的第一行设置为 declare(strict_types=1); 来完成。
<?php
declare(strict_types=1);
function MyFunction(int $x, int $y){
$z = $x + $y;
return $z;
}
$a = 15.5;
$b = 10;
echo MyFunction($a, $b);
?>
上述代码的输出将是:
PHP Fatal error: Uncaught TypeError
函数的返回类型声明
PHP 7 及更高版本支持返回数据类型声明。可以通过添加冒号 : 后跟类型声明来实现。
示例:
在下面的示例中,一个名为MyFunction 已定义。它被声明为返回浮点数据类型。
<?php
declare(strict_types=1);
function MyFunction(float $x, int $y) : float {
$z = $x * $y;
return $z;
}
$a = 15.25;
$b = 10;
echo MyFunction($a, $b);
?>
上述代码的输出将是:
152.5
动态函数调用
在 PHP 中,这是可能的将函数名称作为字符串分配给变量,然后将该变量完全视为新函数名称本身。
示例:
在下面的示例中,名为 MyPrint的函数 已定义。该函数的名称被分配给名为 MyFunction 的变量。然后该函数被该变量调用。
<?php
function MyPrint($name) {
echo "Hello $name";
}
$MyFunction = "MyPrint";
$MyFunction("John");
?>
上述代码的输出将是:
Hello John