PHP - 函数



与大多数编程语言一样,PHP 中的函数是一组有组织的、可重用的代码,用于执行单个相关的操作。函数为您的应用程序提供更好的模块化和高度的代码重用。

PHP 通过定义独立可重用函数块来安排处理逻辑,从而支持结构化编程方法。这种方法的主要优点是代码变得易于遵循、开发和维护。

下图显示了薪资计算过程如何依次分解为独立且可重用的函数。

PHP 函数

函数类型

您已经见过许多函数,如 fopen() 和 fread() 等。它们是内置函数,但 PHP 也允许您选择创建自己的函数。PHP 中有两种类型的函数 -

  • 内置函数:  PHP 的标准库包含大量用于字符串处理、文件 IO、数学计算等的内置函数。
  • 用户定义的函数:  您也可以根据编程逻辑的要求创建用户定义的函数。

可以通过传递所需的数据(称为参数)从任何其他函数调用函数。被调用的函数将其结果返回给调用环境。

您应该清楚两个部分 -

  • 创建 PHP 函数
  • 调用 PHP 函数

事实上,您几乎不需要创建自己的 PHP 函数,因为已经为不同领域创建了 1000 多个内置库函数,您只需根据自己的需要调用它们即可。

请参考 PHP 函数参考 来了解一整套有用的函数。

PHP 用户自定义函数

创建自己的 PHP 函数非常容易。让我们从一个简单的示例开始,然后我们将详细说明它是如何工作的。假设您想创建一个 PHP 函数,当您调用它时,它只会在您的浏览器上编写一条简单的消息。

在此示例中,我们创建一个名为 writeMessage() 的函数,然后调用它来打印一条简单的消息 -


<?php

   /* 定义PHP函数 */
   function writeMessage() {
      echo "你真是个好人,玩得开心!";
   }

   /* 调用PHP函数 */
   writeMessage();
   
?>

它将产生以下输出 -

你真是个好人,玩得开心!

PHP 创建函数

现在让我们详细了解一下这个过程。第一步是编写一个函数,然后您可以根据需要多次调用它。要创建新函数,请使用 function 关键字,后跟您可能要使用的函数的名称。在名称前面,放置一个括号,该括号可能包含也可能不包含参数。它后面跟着一个用大括号分隔的语句块。此功能块包含每次调用函数时要执行的语句。

定义函数的一般语法如下 -


function foo($arg_1, $arg_2, $arg_n) {
   statements;
   return $retval;
}

如果函数打算将一些结果返回给调用环境,则应有一个 return 语句作为函数块中的最后一个语句。没有 return 语句不是强制性的,因为即使没有它,程序流也会返回到调用者,尽管它没有任何值。

任何有效的 PHP 代码都可能出现在函数中,甚至其他函数和类定义也是如此。函数的名称必须遵循与形成变量名称相同的规则。它应该以字母或下划线开头,后跟任意数量的字母、数字或下划线。

这是 PHP 中的一个简单函数。每当调用时,它都应该显示消息 “Hello World”。


function sayhello() {
   echo "Hello World";
}

在 PHP 中调用函数

定义函数后,可以从 PHP 代码中的任何位置调用它任意次数。请注意,函数不会被自动调用。要调用该函数,请在语句中使用其名称;函数的名称,后跟分号。


<?php
   # 定义一个函数
   function sayhello(){
      echo "Hello World";
   }
   # 调用函数
   sayhello();
?>

它将产生以下输出 -

Hello World

假设上述脚本“hello.php”存在于 PHP 服务器的文档根文件夹中,请打开浏览器并输入 URL 作为 http://localhost/hello.php。您应该会在浏览器窗口中看到 “Hello World” 消息。

在此示例中,定义函数时没有任何参数或任何返回值。在后面的章节中,我们将学习如何定义和传递参数,以及如何使函数返回一些值。此外,还将详细解释 PHP 函数的一些高级特性,例如递归函数、通过值与通过引用调用函数等。