假设您正在构建一个其他人可以使用的API。
并且您对函数使用了很多类型,例如function foo(array $arg){...}
。这会强制参数为数组,因此将遍历对象传递给此函数将不起作用。但是你的函数可以使用这些对象。
您是否认为删除提示并处理可遍历对象也是个好主意?或者我应该将其留给用户? (她可以使用iterator_to_array
)
答案 0 :(得分:1)
您可以删除我想要的类型提示并添加PHPDoc注释。在说它需要一个数组,一个可遍历甚至是arrayaccess。
用户在使用API时提供灵活性并不错,但是在处理不合适类型的参数时,API应该具有容错能力。因此,如果你删除类型提示,你应该为你的方法添加类型控件(当然你不必,但它可能被认为是一种最佳实践)。但是,进行检查会导致API速度变慢(可能会疏忽,可能会被视为微优化,但如果您的API需要快速工作,则还应考虑这一点。)