在PHPin_array功能的使用存在的问题及对策

在PHPin_array功能的使用存在的问题及对策
首先,介绍需求背景

发票的方式:

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。我希望这篇文章能帮助一些遇到这个问题的朋友。如果你有问题,你可以留言。
免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部