2011-03-26 53 views
0

的迭代函數的數據我笨寫了一些代碼如何返回笨

指數控制器使用模式「導航」:

$this->load->model('navigation'); 
$data['template']=$this->navigation->nav_template(); 

的nav_template()函數生成的字符串,將輸出在布勞爾:

function nav_template($uplevel=0) 
    { 
     $tablename=$this->db->dbprefix("test"); 
     $sql="select * from $tablename where id_parent=$uplevel " 
     $menu_item=$this->db->query($sql); 

     foreach($menu_item->result_array() as $row) 
     { 
      if($something) 
      { 
       if 
       { 
        echo 'some str'; 
       } 
       self::nav_template($uplevel);//call self 
      } 
      else 
      { 
       echo 'other str'; 
      } 
     } 
     echo '</ul>'; 

    } 
鑑於文件

我使用的<?php echo $template ?>
但我們都知道,我使用echo()來輸出字符串。我想將字符串存儲在一些可用於查看文件模板標籤的php varialbe中。

和nav_template()函數剛剛調用自己使用self php關鍵字。 無處可以像這樣定義var: $template='';並且沒有返回字符串的位置? 所以,誰能告訴我如何返回nav_template()內的輸出字符串,而不是直接回顯給瀏覽器?

ps:輸出數據是格式化的html代碼,它將在一些JavaScript腳本的幫助下生成樹視圖。

回答

2
function nav_template($uplevel=0) 
{ 
    $tablename=$this->db->dbprefix("test"); 
    $sql="select * from $tablename where id_parent=$uplevel " 
    $menu_item=$this->db->query($sql); 
    $out = ""; 
    foreach($menu_item->result_array() as $row) 
    { 
     if($something) 
     { 

      $out .= self::nav_template($uplevel); 
     } 
     else 
     { 
      $out .= 'other str'; 
     } 
    } 
    $out.= '</ul>'; 
    return $out; 
} 
+0

'$ OUT =自:: nav_template($ uplevel);'我從來沒有想到這一點。解決了!謝謝!謝謝! – tunpishuang 2011-03-26 13:45:27