我有方法哪些参数只能处理某些类型的变量。我对如何验证这些类型有一些想法,我需要你的帮助来选择最佳方式 我可以:
false
,而不让用户知道发生了什么。另外,如果用户通常不检查功能的输出 - 例如。 ob_start()
- 他们不会知道这甚至是错的; InvalidArgumentException
说“参数X的类型不正确”。因此,我必须检查每个参数,使代码不可读。另外,实际上必须捕获异常,我在代码中不喜欢这些try...catch
。error_log()
。但是我必须检查每一个参数。您会选择什么选项?为什么?否则,你有更好的主意吗?
更新
当我谈论类型时,我指的是:
http://php.net/manual/en/language.types.php
答案 0 :(得分:0)
如果您正在谈论代码中传递的参数,那么您必须记录错误并修复代码中的每个可能错误。
示例:
function(){
if (!is_array($arg))
trigger_error();
}
仅使用对象,您可以指定参数类型
示例:
function yay(Class1 $arg1, Class2 $arg2){
//That's it!
}
答案 1 :(得分:0)
在php中进行类型检查的唯一方法是使用内置函数。你可以在这里找到一个列表:http://www.php.net/manual/en/ref.var.php这是一个真正痛苦的屁股,但你别无选择。
对于检查本身,我将检查函数开头的所有参数类型,否则抛出错误。然后你总是可以添加一些debuging print_r来发现罪魁祸首。