键入可穿越对象

时间:2013-03-21 15:32:25

标签: php arrays iterator type-hinting

假设您正在构建一个其他人可以使用的API。 并且您对函数使用了很多类型,例如function foo(array $arg){...}。这会强制参数为数组,因此将遍历对象传递给此函数将不起作用。但是你的函数可以使用这些对象。

您是否认为删除提示并处理可遍历对象也是个好主意?或者我应该将其留给用户? (她可以使用iterator_to_array

1 个答案:

答案 0 :(得分:1)

您可以删除我想要的类型提示并添加PHPDoc注释。在说它需要一个数组,一个可遍历甚至是arrayaccess。

用户在使用API​​时提供灵活性并不错,但是在处理不合适类型的参数时,API应该具有容错能力。因此,如果你删除类型提示,你应该为你的方法添加类型控件(当然你不必,但它可能被认为是一种最佳实践)。但是,进行检查会导致API速度变慢(可能会疏忽,可能会被视为微优化,但如果您的API需要快速工作,则还应考虑这一点。)