找回密码
 注册

[PHP] PHP限定返回值的类型为array/string/bool/int/float/callable或类名

php 发表于 2015/11/7 23:55 | 显示全部楼层 |阅读模式
PHP函数返回值的类型在之前的版本中是不能作限制的,从PHP7开始,你可以为自定义函数指定返回值的类型,函数在调用时,如果返回值不是设置的类型,将会报“Fatal error: Uncaught TypeError: Return value of xxx() must be yyy, zzz returned”错误(xxx,yyy,zzz是由代码而来)。

PHP限定返回值类型的语法是 function functionName ($var) : Type { ... }, 其中 Type 指定返回值的类型,可以是array/string/bool/int/float等PHP数据类型,或者是一个类名,如果Type是array/string/bool/int/float,表示返回值是指定的PHP数据类型的变量,如果Type是str/boolean/integer/real/double/resource/object/scalar,这些关键词代表的仍然是类名,而不是PHP的数据类型,如果Type为callable,则代码一个加以回调的函数,另外,Type 不能为null。以下是一个代码实例,注意本代码只支持PHP7以上版本,对于PHP内部可以互相转换的类型,默认是不会报错的,比如限制了返回值类型为int,返回值为float时并不会报错,如果需要严格限制,请在代码前添加 declare(strict_types=1); 这样一行代码。

回顾:PHP函数参数类型限制是PHP 5.0.0开始就支持的。
  1. <?php
  2.         function wxc ($var) : php {
  3.                 return $var;
  4.         }

  5.         class php {
  6.                
  7.         }
  8.         
  9.         $language= new php;
  10.         wxc ($language); // 正确,此时返回值是php类的实例
  11.         $language = 'php';
  12.         wxc ($language); // 错误,此时返回值是字符串
  13. ?>
复制代码

手机版|轻松E站

轻松E站

快速回复 返回顶部 返回列表