-1

次のコードを含む次のファイルがあり、いくつかの項目を配列に追加して追跡しようとしています。

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 
4

1 に答える 1

0

デフォルトの関数引数を間違った方法で使用しています。常にデフォルトを指定する必要があります。

このように関数を定義してみてください -

function generate_json_file(... $type = 0,$json_parcurs = &$json_parcurs){
 ...
}
于 2013-01-05T23:00:55.760 に答える