php数组没有附加值

php数组没有附加值,php,arrays,Php,Arrays,我正面临着一个问题,代码以不同的方式运行。当我在本地机器上编写代码时,它工作得很好,即使在我的演示服务器上,它也工作得很好,但在客户端服务器上不工作 $input = ""; if($tagsources!=""){ foreach ($tagsources as $show_tagsources) { $search_sources = TestSource::search($this->access_key, $show_tagsources); forea

我正面临着一个问题,代码以不同的方式运行。当我在本地机器上编写代码时,它工作得很好,即使在我的演示服务器上,它也工作得很好,但在客户端服务器上不工作

$input = "";
if($tagsources!=""){    
  foreach ($tagsources as $show_tagsources) {
    $search_sources = TestSource::search($this->access_key, $show_tagsources);
    foreach ($search_sources as $source) {
      if(in_array($source,$tagsources) ){
        $input[] = $source->id;                         
      }
    }               
  }     
}   

return $input;
我的服务器工作正常,客户端服务器出现问题。 我的服务器php版本是:5.2.4 客户端服务器的php版本为:5.1.6-23.2 我不确定问题出在哪里,如果你们能找到答案,这将非常有帮助。
提前感谢。

我首先将数组视为数组:

$input = array();
在字符串上使用
[]=
时,版本之间的行为可能发生了一些变化。将其设置为数组,因为您将其用作数组,所以应该不会有问题

此外:

这应该是
if($tagsources)
if(is_数组($tagsources))
if(!empty($tagsources))
。不要将数组与空字符串进行比较。它可能会工作,但它不是你的意思,而且容易出错


如果这不能解决问题,您需要进行更多的分步调试。

如果您正在从数据库中获取数据,则可能是您正在测试的特定计算机上不存在您要查找的值。

我认为您发布的代码没有问题。如果它像你说的那样工作,那么很有可能它不是在这里展示的东西。我想你必须在坏掉的服务器上添加一些echo语句,看看它在哪里坏掉。数据实际上来自数据提供者的API调用。
if ($tagsources != "")