2013-05-21 106 views
0

我發現自己處於非常特殊的情況。問題是我試圖在一個if循環中調用的函數不起作用。但是,如果我沒有if循環調用相同的函數,它工作正常。 $ this-> build($ passed_menu_id,$ id_link);如果條件工作絕對正常,因爲回顯「你好」被打印。這意味着它進入循環但不執行該功能。if循環中的特殊情況

這種情況下是工作完全正常

function Menu($passed_menu_id, $id_link) { 
     $this->array_collection = array(); 
     $this->menu_collection = array(); 
     $this->menu_id = $this->_pickMenuId($passed_menu_id); 
     $this->build($passed_menu_id, $id_link); 
     } 

此方案行不通

function Menu($passed_menu_id, $id_link) { 
     $this->array_collection = array(); 
     $this->menu_collection = array(); 
     $this->menu_id = $this->_pickMenuId($passed_menu_id); 
     if($this->menu_id==1003){ 
      echo "Hello"; 
      $this->build($passed_menu_id, $id_link); 
     } 

感謝您的時間提前

+1

有沒有這樣的事情,如果循環。代碼中沒有任何迴路 – ose

+0

請檢查第二個方案 – Justin

+1

您是否嘗試檢查不同的menu_id?假設$ this-> build()例如從數據庫中提取數據,可能沒有可用於此ID的數據? – Sutuma

回答

1

在第二個方案中,您缺少一個}:它應該是

function Menu($passed_menu_id, $id_link) { 
     $this->array_collection = array(); 
     $this->menu_collection = array(); 
     $this->menu_id = $this->_pickMenuId($passed_menu_id); 
     if($this->menu_id==1003){ 
      echo "Hello"; 
      $this->build($passed_menu_id, $id_link); 
     } // This is missing 
     } 

除此之外,沒有什麼代碼應停止if從功能應該

+0

我忘了輸入。但是我的代碼有它.. – Justin

+0

把你的回聲放在'build'之後,看看它是否一樣? –

+0

是的,它是一樣的。你好,打印 – Justin

0

或許也有一些是在構建功能不符合的「如果」條件的方式嗎?你可以發佈構建函數代碼嗎?