array_push()和in_array()无法搞清楚

时间:2013-01-05 22:57:05

标签: php

我有以下文件,其中包含下一个代码,我试图通过将它们添加到数组中来跟踪某些项目。

header('Content-type: application/json');
$json_output = array();
$json_parcurs = array();
function generate_json_file($depth, &$json_output, $parent_id, &$children = null, $child_nr = null , $percentage = 0,$id_child = null,$type = 0,&$json_parcurs){


[code].....


 for($i=0; $i<$nr_of_children; $i++)
            {
                if (!in_array($firma[$i+1]['vessta_id'],$json_parcurs))
                    // Run recurence function
                    if ($firma[$i+1]['shareholder_id'] != '')
                    {
                        array_push($json_parcurs,$firma[$i+1]['vessta_id']);
                        generate_json_file($depth, $json_output, $table_init[1][0], $json_output['children'], $i,$firma[$i+1]['percentage_held'],$firma[$i+1]['vessta_id'],0,$json_parcurs);
                   }                     
            }

}
generate_json_file(0, $json_output, 0);

echo json_encode($json_output);

我的问题是我得到了很多警告:

[05-Jan-2013 22:49:24 UTC] PHP Warning:  in_array() expects parameter 2 to be array, null given in 
[05-Jan-2013 22:49:24 UTC] PHP Warning:  array_push() expects parameter 1 to be array, null given 

1 个答案:

答案 0 :(得分:0)

您正在以错误的方式使用默认函数参数。您始终必须指定默认值。

尝试像这样定义你的功能 -

function generate_json_file(... $type = 0,$json_parcurs = &$json_parcurs){
 ...
}