对于此数组($options)
:
Array (
[0] => 0
[1] => 1
[2] => 2
)
PHP返回TRUE:
$this->assertTrue( in_array('Bug', $options ) ); // TRUE
$this->assertTrue( in_array('Feature', $options ) ); // TRUE
$this->assertTrue( in_array('Task', $options ) ); // TRUE
$this->assertTrue( in_array('RockAndRoll', $options ) ); // TRUE
为什么?
答案 0 :(得分:24)
这是因为0 == "string"
is true和0
是数组的元素。
将$strict
中的参数in_array
设置为true:
$this->assertTrue( in_array('Bug', $options, true) );
答案 1 :(得分:6)
尝试在函数调用中添加第三个参数;
$this->assertTrue( in_array('Bug', $options, true) );
这将确保比较是类型严格的,并且应该解决您的问题。
答案 2 :(得分:2)
将第三个参数添加到in_array()
并将其设置为TRUE
。