Php array_push()要求参数1为数组,给定布尔值

Php array_push()要求参数1为数组,给定布尔值,php,arrays,Php,Arrays,我有一段代码,它应该在同一页中发送post数据,然后将该数据推送到数组中 $array = array(); if (isset($_POST["array"])) { $array=unserialize($_POST["array"]); } if (isset($_POST["uname"]) && isset($_POST["upass"])) { array_push($array,$nama=$_POST["uname"]+" "+$pass=$_PO

我有一段代码,它应该在同一页中发送post数据,然后将该数据推送到数组中

$array = array();
if (isset($_POST["array"])) { 
   $array=unserialize($_POST["array"]);
}
if (isset($_POST["uname"]) && isset($_POST["upass"])) { 
   array_push($array,$nama=$_POST["uname"]+" "+$pass=$_POST["upass"]);
}
print_r($array);

<form action="" method="POST">
username : <input type="text" name="uname">
password : <input type="password" name="upass">
<input type="hidden" value="<?php serialize($array)?>" name="array">
<input type ="submit">
</form>
$array=array();
if(isset($_POST[“array”]){
$array=unserialize($_POST[“array”]);
}
if(isset($_POST[“uname”])和&isset($_POST[“upass”]){
数组推送($array,$nama=$\u POST[“uname”]+“”+$pass=$\u POST[“upass”]);
}
打印(数组);
用户名:
密码:
首先:“取消序列化($_POST[“array”]);”。你真的发布序列化数据吗?
我认为,没有,因此unserialize()返回布尔值false,而不是数组。因此,当您将它传递给array_push时,它表示$array是布尔值


将您的html表单张贴到应该填写此数组的位置。正如上面评论中提到的,var_dump($\u POST[“array”])也会有帮助。

在推送之前尝试转储
$array
,我不知道这是否是您的意思,但在我的代码中,首先有一行,应该有value=“”(添加echo)。第二,可能会出现错误和错误,因为序列化字符串通常包含引号(“),浏览器会将引号视为值的结尾。因此,整个想法是错误的。第三,阅读文档:。当传递的字符串无法取消序列化时,Unserialize返回boolean false(例如,空值损坏)。我确信情况确实如此。