我有以下功能,我知道应该返回TRUE但不会。
function myFunc($str,$array)
{
foreach($array as $k=>$v)
{
if(strtolower($v) == strtolower($str))
{
return TRUE;
}
}
return false;
}
此函数在if语句if($this->myFunc($something, $array)){
无论我做什么,即使我在返回TRUE之上回复一些文本,它也不会返回true;并显示。对于我缺少的东西的任何帮助,这将是伟大的。
很抱歉没有发布代码 我的数组打印以下
Array
(
[0] => -1
[1] => Platinum
[2] => 169
)
和
$something = '-1';
如果-1存在,我试图返回true。我不认为的问题是该值是否在数组中。我遇到的问题是为什么它不会返回为真,它会回显一个值,但它不会返回任何内容。我尝试使用in_array,但函数仍未返回true,这就是我尝试此方法的原因。这可能是我的PHP版本的问题吗? 我使用了strtolower,因为这个函数将在整个页面中重用,以搜索其他值。
由于
答案 0 :(得分:6)
我认为你的功能没有任何问题,但作为替代方案,你可以尝试:
return in_array(strtolower($str), array_map("strtolower", $array));
答案 1 :(得分:1)
This function is used inside a class in an if statement if($this->myFunc($something, $array))
将if语句修改为以下内容是否会改变答案?
if(myFunc($something, $array))
只是一个想法,或许$this
未在正确的时间进行评估。
答案 2 :(得分:0)
您可以使用in_array
或strcmp
来完成此操作。
返回值
返回<如果str1小于str2,则为0;
如果str1大于str2,则0;如果它们相等,则为0