PHP7实践指南:O2O网站与App后台开发
上QQ阅读APP看书,第一时间看更新

4.3 函数返回值

函数的返回值可以是任意类型的数据。函数也可以不返回值。函数使用return返回数据,遇到return语句函数会立即终止执行。示例如下:

        <? php
        function square($num)
        {
          return$num*$num;
        }
        echo square(4); //outputs'16'.
        ?>

以上代码的运行结果为:

          16

函数不能返回多个值,但可以通过返回一个数组来得到类似的效果。示例如下:

        <? php
        function small_numbers()
        {
          return array (0, 1, 2);
        }
        list ($zero,$one,$two)=small_numbers();
        echo$zero .$one .$two;
        ?>

执行结果为:

          012

$zero $one $two的值分别是0、1、2。

在PHP 7中函数增加了返回值的类型声明。和参数类型声明类似,在非严格模式下,PHP将会尝试将返回值类型转换成期望得到的值类型,但在严格模式下,函数的返回值必须与声明的返回类型一致。示例如下:

        <? php
        function sum($a,$b): float{
          return$a+$b;
        }
        var_dump(sum(1, 2));
        ?>

以上程序会输出:

          float(3)

在严格模式下的代码如下:

        <? php
        declare(strict_types=1);
        function sum($a, $b):int{
            return$a+$b;
        }
        var_dump(sum(1,2));
        var_dump(sum(1,2.1));
        ?>

以上程序的执行结果为:

          int(3)
          Fatal error: Uncaught TypeError: Return value of sum() must be of the type integer,float returned in /Library/WebServer/Documents/book/str.php:281 Stack trace: #0/Library/WebServer/Documents/book/str.php(284): sum(1, 2.1) #1 {main} thrown in/Library/WebServer/Documents/book/str.php on line 281