首先,
介绍需求
背景:
发票的方式:
0 =捐赠(不要问我为什么,历史
原因)
1 =中间发送
2 =请求
3 =电子发票
现在需要
检测用户提交的数据:
PHP;自动链接:false; >如果(!in_array($ _post { 'invoice_action},阵列(0,1,2,3))){
抛出异常(请选择
正确的发票
模式);
}
在这个时候,有一个问题,如果根本没有价值为_post { 'invoice_action},为什么没有异常抛出
可以
确认,这是PHP的一个凹坑,作为一种弱
类型语言,是的,它是一个坑。
看看这套代码:
回声in_array('',阵列(0):0 / 1);结果:1
回声in_array(null,阵列(0):0 / 1);结果:1
回声in_array(假,阵列(0):0 / 1);结果:1
这么大的一个坑,我们怎么到处走动或者把它装满
方法1:in_array
支持第三个
参数,强制数据类型检测
回声in_array('',阵列(0):0真实,1); / /结果:0
回声in_array(null,阵列,真(0):0 / 1);结果:0
回声in_array(假、阵列、真(0):0 / 1);结果:0
方法二:仍然是数据类型的方向,数组中的0被
转换为字符串。
回声in_array('',阵列('0'),真的)1:0; / /结果:0
回声in_array(null,阵列,真('0')1):0; / /结果:0
回声in_array(假、阵列、真实('0')1):0; / /结果:0
总结
以上是关于存在的问题及
解决方法在使用in_array
功能的PHP。我希望这篇文章能帮助一些遇到这个问题的朋友。如果你有问题,你可以留言。