我可以在PHP中键入所有内容吗?

时间:2019-02-03 20:05:59

标签: php

是否应该尽可能地键入提示所有内容(参数和返回值)?甚至可能努力编写可以类型提示的代码?在现实世界中,真正的开发人员可能(或可能不少于)恒星,是否有可能在任何可能的情况下键入提示?

在我看来,断断续续而疯狂的代码是在大多数时间都无法投入生产之前就断断续续的代码。

2 个答案:

答案 0 :(得分:2)

类型提示是必经之路。我将从类型提示参数(与接口组合)开始,返回值,以及每当初始化变量或属性时开始。结合文档块,您已经以一种允许其他人快速提取代码的方式记录了您的代码。

function getValue(\Settings\Bar $foo) : string
{

    $val = (string) $foo->value;
    //..

    return $val;
}
$myVal = (string) getValue($bar);

如果有人犯错,调试器将为您指出确切的位置。而且使用

declare(strict_types=1);

在所有php页面的顶部强制执行类型提示,并且您正在使用PHP编写企业级代码。

答案 1 :(得分:1)

类型提示可以帮助其他开发人员甚至您更好地理解代码,而无需深入研究它。您不必了解类或函数的内部逻辑,也不必搜索手册或互联网即可知道该函数所返回的值的类型。

它还有助于防止犯下愚蠢的错误。例如,有人认为一个函数接受一个ArrayAccess对象,但实际上,该函数仅接受可能导致错误的数组。

我能看到的唯一缺点是,由于PHP本身的特性,很难维护类型提示并保持所有内容的一致性。

因此,强烈建议尽可能进行类型提示。借助像PHPStorm这样的现代IDE,维护类型提示并使其保持最新和一致变得非常容易。