如何强制执行 PHP 方法参数?
如何验证/管理 PHP 方法参数以及为什么这样做?
How do you validate/manage your PHP method arguments and why do you do it this way?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
如何验证/管理 PHP 方法参数以及为什么这样做?
How do you validate/manage your PHP method arguments and why do you do it this way?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(2)
好吧,假设您正在谈论类型检查方法参数,这取决于:
如果它需要一个对象,我使用 带有接口的类型提示:
如果它只需要一个数组,我会使用带有
array
关键字的类型提示。如果它需要一个字符串、int、bool 或 float,我会强制转换它:
如果它需要混合,我只需检查级联:
最后,如果它期望可迭代类型,我不使用类型提示。我首先检查它是否是一个数组,然后重新加载迭代器:
如果它需要文件名或目录,只需使用
is_file
进行确认:我认为这可以处理大多数情况。如果您想到其他任何问题,我很乐意尝试回答...
Well, assuming that you're talking about type-checking method arguments, it depends:
If it's expecting an object, I use type-hinting with an interface:
If it's expecting an array only, I use type-hinting with the
array
keyword.If it's expecting a string, int, bool or float, I cast it:
If it's expecting mixed, I just check in a cascade:
Lastly, if it's expecting an iterable type, I don't use type-hinting. I check if it's an array first, then re-load the iterator:
If it's expecting a filename or directory, just confirm it with
is_file
:I think that handles most of the cases. If you think of any others, I'll gladly try to answer them...
类型检查应该在开发阶段而不是生产阶段进行。因此,适当的语法特征是:
但是我会尽力避免它,或者最好使用类型强制。 PHP 的动态类型可以很好地适应不同的值。只有少数地方您需要关闭基本语言行为。
Typechecking is something you should do at the development stage, not in production. So the appropriate syntactic feature for that would be:
However I'll try to avoid it, or use type coercion preferrably. PHP being dynamically typed does quite well adapting to different values. There are only few spots where you want to turndown the basic language behaviour.