hsz*_*hsz 9 php arrays conditional-statements
我有in_array功能问题.以下测试返回true:
in_array(0, array('card', 'cash'))
怎么不可能,我怎么能阻止呢?
然而
in_array(null, array('card', 'cash'))
回报false.
Thi*_*ter 24
将任何不以数字开头的字符串转换为数字会导致0PHP.这正是0与某些字符串进行比较时会发生的情况.有关如何完成各种类型之间的比较的详细信息,请参阅PHP文档.
使用第三个参数(设置为true)in_array以避免松散类型比较.
in_array(0, array('card', 'cash'), true) === false
当你比较in_array
字符串时转换为int,同时比较不兼容的数据类型,它意味着cash或card转换为0
这都是因为类型铸造
你有2个选择
1.类型铸造
in_array(string(0), array('card', 'cash'))) === false;
2.使用与数据类型匹配的third parameterin_arraytrue
in_array(0, array('card', 'cash'), true) === false;
看文档
| 归档时间: | 
 | 
| 查看次数: | 2259 次 | 
| 最近记录: |