有没有一种快速方法来检查变量是否属于集合?
我有一个表单,我需要检查输入是否属于 enum(0,1,2,3,..,n) 有没有一种简单的方法来检查我的变量是否属于集合 [0:n] ?或者我必须写出每个条件(基本上n<10,所以它是可行的,但不那么实用......)?
如果没有本地函数可以做到这一点,你能给我一个关于如何为此创建一个函数的提示吗?
谢谢 :)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您可以使用
range()
的组合和in_array()
。例子:
You can use a combination of
range()
andin_array()
.Example:
这适用于 0 到 n 的范围
如果你想制作特定范围。 fe 0,1,3,7,你可以使用
This is true for range from 0 to n
If you want to make specific range. f.e. 0,1,3,7, you can use
您可以创建 范围 并运行 in_array,但这可能对性能不利。 PHP 将在内部最终循环遍历您提供的数字以创建一个全新的(可能很大)数组,然后再次循环遍历该数组以查看 X 是否在某处。这比简单的“是否在这些数字之内”检查所需的工作量要多得多。
坚持这两个条件可能是最好的方法,特别是因为它会更具可读性。如果出于某种原因,您确实需要一个辅助函数,您也可以创建一个辅助函数。
但是,如果您已经定义了范围,无论如何,出于其他原因, in_array 似乎没问题。
You could make the range and run in_array, but that probably wouldn't be great for performance. PHP would internally end up looping through the numbers you provided to create a brand new (potentially huge) array, and then loop through the array all over again to see if X is in there somewhere. That's a lot more work than necessary for a simple "is it within these numbers" check.
Sticking to the two conditions is probably the best way to go, especially since it'd be much more readable. You can also make a helper function if this is, for some reason, really getting to you.
But if you already have the range defined, anyway, for other reasons, in_array seems fine.