Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/243.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 为什么这个功能不起作用?_Php - Fatal编程技术网

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

Php 为什么这个功能不起作用?,php,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)){ 无论我做什么,它都不会返回tr

我知道下面的函数应该返回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
)

如果-1存在,我尝试返回true。我认为问题不在于该值是否在数组中。我的问题是为什么它不会返回true,它会回显一个值,但不会返回任何内容。我尝试在_数组中使用该函数,但函数仍然没有返回true,这就是我尝试此方法的原因。这可能是我的PH值的问题吗P版本? 我使用strtolower是因为该函数将在整个页面中重复使用以搜索其他值


谢谢

我看不出您的功能有什么问题,但作为替代方案,您可以尝试:

return in_array(strtolower($str), array_map("strtolower", $array));

我认为您的功能没有任何问题,但作为替代方案,您可以尝试:

return in_array(strtolower($str), array_map("strtolower", $array));

此函数在if语句if($This->myFunc($something,$array))的类内使用。

将if语句修改为以下内容是否会改变答案

if(myFunc($something,$array))


只是一个想法,因为可能没有在正确的时间计算
$this

此函数在if语句if($this->myFunc($something,$array))的类中使用。

将if语句修改为以下内容是否会改变答案

if(myFunc($something,$array))


只是一个想法,因为可能没有在正确的时间评估此。

您可以使用数组中的
strcmp来完成此操作

返回值

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

如果str1大于str2,则为0;如果两者相等,则为0


您可以在数组中使用
strcmp
来完成此操作

返回值

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

如果str1大于str2,则为0;如果两者相等,则为0


请提供$str和$array的内容。:)我同意粘贴一个var_dump($str);var_dump($array)在函数的开头。您是否在数组上使用print\r进行了调试?显示调用函数的确切代码。此处给出的函数没有问题。这不是您正在使用的确切代码,它不应该返回true,或者您的使用有问题。请告诉我们您是如何使用它的。请se提供$str和$array的内容。:)我同意粘贴一个var_dump($str);var_dump($array)在函数开始处。您是否在数组上使用print\r进行了调试?显示调用函数的确切代码。此处给出的函数没有问题。这不是您正在使用的确切代码,它不应该返回true,或者您的使用有问题。请告诉我们您如何使用它。+1,本质上相同的函数,但使用了两个循环。+1,本质上相同的函数,但使用了两个循环。如果我删除$this,它将抛出函数未定义的错误。如果我删除$this,它将抛出函数未定义的错误。