函数是一个语句块,仅当在程序中的某个位置调用它时才执行。函数为不同的输入提供相同代码的可重用性,从而节省时间和资源。 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