我正处理一个与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之前已声明,但没有运气。
尝试调试和调整代码,在运行脚本的时候,而不是在屏幕上看到某些内容,浏览器会下载脚本,而有些时候我会发生内存泄漏。
任何人都可以指出要查找的位置或内容,或调试并解决它吗?
答案 0 :(得分:0)
问题解决了
在运行代码之前我正在调用函数
$obj->draw($$id)
这导致了问题
解决方案
$value=$$id;
$obj->draw($value)
我不知道为什么会导致这个问题。
如果有人有理论,请发布。