大道PHP
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

3.1 定义并使用函数

定义并使用函数

函数具有控制程序设计的复杂性,提高软件的重用性、可维护性和开发效率等优点。通过函数能够把特定的功能封装在程序块中,当需要该功能时,直接调用相应的函数就可以了。下面将介绍如何在PHP中定义函数及如何使用PHP函数。

3.1.1 定义函数

在PHP中,函数使用关键字function来定义,通常由函数名称、参数、函数体和返回值4部分构成。自定义函数的语法格式如下:

      function函数名称([参数1,参数2,参数3……]){
          函数体;
          return返回值;
      }

在上述语法格式中,其中:

● 函数名称用来标识某个函数,PHP中不允许函数重名。在命名函数时应注意,函数名称只能包含数字、字母和下画线,并且不能以数字作为开始。函数名不区分大小写。

● 参数的作用是使函数外部能够向函数中传递数值。在函数的参数列表中,可以没有参数,也可以有一个或者多个参数。

● 返回值的作用是在函数成功执行后,将执行结果返回给函数外部。函数的返回值可以是任何数据类型,也可以没有返回值。

● 函数体是该函数的执行规则,任何有效的PHP代码都可以出现在函数体中。在函数体中可以调用PHP内置函数或者其他自定义函数。

例如,自定义一个函数,该函数实现的功能是计算n的阶层,代码如下:

代码3-1光盘\codes\第3章\3.1\define.php

      <?php
      function nRecursion($n){
          $s=1;
          for($i=1;$i<=$n;$i++){
                $s=$s*$i;
          }
          return $s;
      }
      ?>

3.1.2 函数的调用方法

在PHP中,可以直接使用函数名称进行函数的调用。如果函数带有参数,调用时需要传递相应参数。调用系统内置函数和自定义函数的方法都是相同的,可以使用下面的语法格式:

      function函数名称([参数1,参数2,参数3……]);

下面是调用round()函数的例子。round()函数是PHP内置函数,其语法格式如下:

      float round ( float $val [, int $precision])

在调用函数前,需要理解函数的功能、参数和返回值的含义。

● 功能:该函数实现了对浮点数进行四舍五入的功能,并且可以指定从浮点数的位置开始进行四舍五入。

● 参数:该函数有两个参数,分别是val和precision。参数的含义是从浮点数val的第precision个长度的位置开始进行四舍五入。中括号中的参数表示可选参数。

● 返回值:该函数返回值的类型是float型。

调用round()函数对浮点数725.386进行四舍五入运算的代码如下:

代码3-2光盘\codes\第3章\3.1\use.php

      <?php
      $floatNumber = 725.386;
      echo "原浮点数为:".$floatNumber."<br>";
      $result1=round($floatNumber);                               //调用round()函数
      echo "从小数点处进行四舍五入的结果为:".$result1."<br>";
      $result2=round($floatNumber,2);                             //调用round()函数
      echo "从小数点后两位处进行四舍五入的结果为:".$result2."<br>";
      $result3=round($floatNumber,-2);                             //调用round()函数
      echo "从小数点前两位处进行四舍五入的结果为:".$result3;
      ?>

该程序运行结果如图3-1所示。

图3-1 调用round()函数

如果调用一个不存在或存在错误的函数,会得到如图3-2所示的错误信息。该错误信息中可能会提示错误具体出现在哪个文件中的哪一行,以及调用时的函数名称,根据这个错误信息可以很容易地找到并纠正错误。

图3-2 关于函数调用的错误信息

如果看到类似错误信息,通常需要进行以下两项检查:

● 函数名称的拼写是否正确。

● 这个函数是否正确存在于PHP文件中。

除上述原因外,还有一种可能就是所调用的函数是PHP扩展的一部分,而该部分并没有被载入。比如,尝试使用GD库(图像操作函数库)的某些函数没有安装GD,将同样会看到错误消息。