为什么这个功能不起作用?

时间:2010-12-09 21:02:41

标签: php

我有以下功能,我知道应该返回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,因为这个函数将在整个页面中重用,以搜索其他值。

由于

3 个答案:

答案 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_arraystrcmp来完成此操作。

  

返回值

     

返回<如果str1小于str2,则为0;

     
    如果str1大于str2,则

0;如果它们相等,则为0