【发布时间】:2014-09-04 08:57:13
【问题描述】:
我在这段代码中得到了Warning: array_push() expects parameter 1 to be array, string given in ... 的array_push()。首次推送时出现警告,如何解决?
$url = $_SERVER['QUERY_STRING'];
$chunk = explode("&",$url);
array_pop($chunk);
foreach($chunk as $key => $value)
{
$pieces = explode("=",$value);
if($pieces)
{
$val = $pieces[0];
if(isset($$val))
{
array_push($$val,$pieces[1]);
}else{
$$val = array();
array_push($$val,$pieces[1]);
}
}
}
注意:我没有使用 $_GET,因为我的查询字符串可以包含多个具有相同名称的参数,像这样
?q=1&q=2&q=3&q=4
【问题讨论】:
-
$url的值是多少? -
为什么不直接使用已经解析并提取了查询字符串的 $_GET 呢?
-
您可以添加额外的检查
if(isset($$val) && is_array($$val)) -
顺便说一句,代码运行良好,我只是收到此警告并想摆脱它。它不是我制作的,我还是 PHP 新手,以前从未使用过 $$ 变量。
-
我尝试添加 is_array 附加检查,然后我得到:注意:数组到字符串的转换
标签: php arrays array-push