PHP - 标量值和内存泄漏问题

时间:2010-11-20 17:15:47

标签: php

我正处理一个与Warning: Cannot use a scalar value as an array and memory leak.

有关的非常奇怪的情况

脚本非常简单,我无法弄清楚问题。

代码

$variants=array();                                  
if($text) 
{ 
    $v=explode(",",$text);
    if(is_array($v) && sizeof($v)>0)
    {
         foreach($v as $i=>$part)
         {                                      
        $tmp=explode(":",$part);
            list($thekey,$thevalue)=$tmp;
        //$variants=array(); 
        echo "<div>TYPE==".gettype($variants)."</div>";
        echo $variants[$tmp[0]]=$tmp[1];    
         }
    }
}

如果我运行上面的代码,因为独立工作正常。但是当把它放在我的框架中时,小部分表现得非常奇怪。我得到了Warning: Cannot use a scalar value as an array,为了解决这个问题,我添加了

$variants=array();  

在第一行。运行脚本时,gettype第一次返回���,然后返回整数。

如果我在$variants=array();之前取消注释gettype,它就可以了。但是我当然不会得到整个数组,只有最后一条记录返回。

我解析我的代码,发现我使用的变量在我将所有变量名称更改为stupids之前已声明,但没有运气。

尝试调试和调整代码,在运行脚本的时候,而不是在屏幕上看到某些内容,浏览器会下载脚本,而有些时候我会发生内存泄漏。

任何人都可以指出要查找的位置或内容,或调试并解决它吗?

1 个答案:

答案 0 :(得分:0)

问题解决了

在运行代码之前我正在调用函数

$obj->draw($$id)

这导致了问题

解决方案

$value=$$id;    
$obj->draw($value)

我不知道为什么会导致这个问题。

如果有人有理论,请发布。