PHP中的类型提示返回值/函数

Posted

技术标签:

【中文标题】PHP中的类型提示返回值/函数【英文标题】:Type-hinting return value/functions in PHP 【发布时间】:2014-03-06 07:29:24 【问题描述】:

我做了一些研究,发现这个 RFC 讨论了 php 中函数的类型提示: https://wiki.php.net/rfc/returntypehint2

例如

public string getName()

    return 'martinmine';

将是有效的 PHP 代码。例如,在这种情况下,返回一个数组会产生错误。有谁知道 RFC 的状态,或者它是否被删除/添加?我似乎无法使上面的这个功能起作用。我正在使用 PHP 5.5.9。

【问题讨论】:

还没有实现,而且那个RFC已经有一年了;据我所知,没有有效/当前的计划/投票来实现这一点。 @zerkms 如果可以的话,我会用 C# 编写它。 我不明白你为什么要立即推荐其他语言。问题没有提到这一点。在那种情况下,我们都可以放弃 php 和 C# 或 python 或其他代码。这不是这里的问题。现在关于类型提示 - afaics 它还没有被介绍,但看 cmets - php.net/manual/en/language.oop5.typehinting.php 没有添加返回值类型提示 - 在 PHP 5.5 和即将到来的 PHP 5.6 中都没有。目前在这个方向上没有积极的讨论(这是一个相当尖锐的话题;) Hack 添加这样的类型提示 【参考方案1】:

返回类型的类型提示推迟到 PHP 7(截至this article),但语法与旧用途不同:

function foo(): array 
    return [];

但它已经在 PHP 5 中用于方法或函数的类型类参数(截至this article):

public function test_array(array $input_array) 
    print_r($input_array);

【讨论】:

以上是关于PHP中的类型提示返回值/函数的主要内容,如果未能解决你的问题,请参考以下文章

PHP中的fopen()函数的返回值是啥?

PHP7 中的可空返回类型

php函数 返回值

仅返回一组特定值的函数的类型提示

向接受任何可迭代并返回压缩值的函数添加类型提示

函数EMPTY(0)和ISNULL(0)的返回值分别是啥