2012-05-11 5 views
0

タイトルによれば、私は関数を持っているので、配列にいくつか変更を加えます(この配列は私のパラメータです)。それから私は私の実際の配列のコピーを使用していることに気付きました。関数を使用するときに実際の変数を取得する方法とコピーを取得する方法

実際の配列を取得する方法があり、コピーではないことは知っていますが、それは何ですか? は、私は、それが

function findChildren($listOfParents) 
    { 
     static $depth=-1; 
     $depth++; 

     foreach ($listOfParents as $thisParent) 
     { 
      $thisParent->title = str_repeat(" >", $depth) . $thisParent->title; 
      $children = page::model()->findAll(array('condition'=>'parent = ' . $thisParent->id)); 
      findChildren($children); 
     } 

     $depth--; 
    } 

は、だから私はこの$のlistOfParentsを必要としない彼のコピーを使用するのはここ

がある私はあなたがちょっとの間:)でこれを解決する知っている、事前にすべてのいただきありがとうございます。

答えて

3

は参照

function findChildren(&$listOfParents) 
    { 
     static $depth=-1; 
     $depth++; 

     foreach ($listOfParents as $thisParent) 
     { 
      $thisParent->title = str_repeat(" >", $depth) . $thisParent->title; 
      $children = page::model()->findAll(array('condition'=>'parent = ' . $thisParent->id)); 
      findChildren($children); 
     } 

     $depth--; 
    } 

お知らせでは、元の変数ではなく、コピーで作業していることを示しアンパサンド&を、値を渡して試してみてください。

+0

ありがとう、それは助けました:) – Jordashiro

+0

できる場合は、答えを受け入れることを忘れないでください:) – freshnode

1

あなたは参照することにより、変数を渡して話をしている:http://php.net/manual/en/language.references.pass.php

はこれを試してみてください:

function findChildren(&$listOfParents) 
    { 
     static $depth=-1; 
     $depth++; 

     foreach ($listOfParents as $thisParent) 
     { 
      $thisParent->title = str_repeat(" >", $depth) . $thisParent->title; 
      $children = page::model()->findAll(array('condition'=>'parent = ' . $thisParent->id)); 
      findChildren($children); 
     } 

     $depth--; 
    } 
関連する問題