【问题标题】:Correct use of in_array()正确使用 in_array()
【发布时间】:2023-03-12 23:50:01
【问题描述】:

这段代码:

if ( in_array($some_variable, ['uk','in'], true ) ) {

等同于:

if ( $some_variable == 'uk' && $some_variable == 'in' ) {

我如何使用in_array() 来做第一个示例,类似于:

if ( $some_variable == 'uk' OR $some_variable == 'in' ) {

OR 不是&&

【问题讨论】:

  • 你的第二个 sn-p 应该使用 ||有同等的行为。一个变量不能等于两个不同的字符串
  • 我猜测您已经在没有意识到的情况下回答了自己的问题,而且您是新来的,您根本没有得到预期的行为。而且我猜测是对第三个参数的作用以及数组的缩写内容的误解,您认为这是一个不区分大小写的标志,正如其他一些函数所提供的那样,而不是严格的类型匹配。所以,如果我的假设不正确,请原谅我,但我怀疑这是您正在寻找的实际答案:stackoverflow.com/questions/2166512/…

标签: php


【解决方案1】:

你已经做到了。 in_array($item, $array) 检查该项目是否存在于集合中,因此它本质上是一个 OR。如果它是 AND,那么它将始终返回 false,除非数组不包含相同值的多个实例。顺便说一句,第三个参数true 寻找严格的类型匹配,所以它就像是$item === $element,而不是$item == $element 的默认值匹配。 (即1 == true // true1 === true // false。因此,in_array(1, [true, 'true', 2], true); // falsein_array(1, [true, 'true', 2]); // true (I think)。)

【讨论】:

  • 谢谢!所以,通过删除true,我想这正是我想要的。
猜你喜欢
  • 2014-04-22
  • 2016-11-01
  • 1970-01-01
  • 2017-09-11
  • 2018-08-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-27
相关资源
最近更新 更多