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开始就支持的。- <?php
- function wxc ($var) : php {
- return $var;
- }
- class php {
-
- }
-
- $language= new php;
- wxc ($language); // 正确,此时返回值是php类的实例
- $language = 'php';
- wxc ($language); // 错误,此时返回值是字符串
- ?>
复制代码 |
|