为参数提供类型是否有任何好处:
public static function DoStuff( string $str ) {
echo $str;
}
与不使用它们相比?
public static function DoStuff( $str ) {
echo $str;
}
如果我声明我的类型,它可能会运行得更快吗?
答案 0 :(得分:23)
您不能(使用当前版本的PHP)指定标量类型,例如string或int。您只能指定类/接口或数组。
手册的相关页面:Type Hinting。
我看到使用类型提示至少有一个很大的优势:可读性。更容易看出函数/方法所期望的参数类型。
有些人会认为这是一个缺点,如果你不尊重类型提示并传递一些非类型有效的参数,你将得到一个可捕获的致命错误。然而,
如果您的问题与速度有关:
总之,个人观点:我经常使用这些类型的提示,就这样:
答案 1 :(得分:6)
通常,类型检查/类型提示是一件好事,因为它为编译器/解释器提供了必要的信息,以便更好地进行错误检查。如果不键入提示,程序可能会以静默方式崩溃,而不是生成描述性错误。
答案 2 :(得分:1)
优势在于,如果有人试图错误地使用您的函数,您将立即收到错误(例如使用一个类而不是另一个类,或者在应该使用数组时)。
但是,除了对象或数组之外的任何东西都不能这样做 - 所以带有字符串的示例将不起作用。
随着更多检查的发生,它几乎肯定会运行得更慢。
答案 3 :(得分:1)
我在php上有三个优点:
我不确定使用类型是否可以提高性能。