2017-04-02 103 views
-2

我想声明一个全局数组,并将数据放入一个函数中。在PHP中声明全局数组

它的工作原理只有在全局变量是一个字符串,但如果它是一个数组:

$data = iterate("USER361"); 
print_r($data); 

function iterate($username) 
{ 
    global $gv_array; 

    $sql = "select * from account where sponsor = '$username'"; 
    $result = mysql_query($sql); 
     while($row = mysql_fetch_array($result)) 
     { 
      $this_user = $row['username']; 
      $this_name = $row['full_name']; 
      $this_tier = $row['tier']; 

      $my_array = array("username"=>$this_user,"name"=>$this_name,"tier"=>$this_tier); 
      array_push($gv_array[],$my_array); 

      iterate($row['username']); 
     } 

}//end of iterate 

我得到的错误是:

PHP的警告:array_push()预计参数1是数组,在/var/www/html/inc/code.php空给出线29

+2

的可能的复制[PHP如何在全球范围内访问该阵列?(http://stackoverflow.com/questions/11743275/php-how-to-access-this-array-globally) – julekgwa

+1

不应该这行'array_push($ gv_array [],$ my_array);'是'array_push($ gv_array,$ my_array);' –

+0

检查在这里:http://stackoverflow.com/questions/12876222/declaring-a-global-array –

回答

0

如果$gv_array它是一个数组,那么问题就在这里array_push($gv_array[],$my_array); REM在方括号内。

array_push($gv_array,$my_array);