2013-03-01 270 views
-1

我有我的控制器此if聲明:PHP if語句空

if($parent == $page->parent) 

$parent == null有時,當$parent是例如16它執行我的if語句,但只有當它的空,它不執行它是什麼我做錯了嗎?

這裏是我的控制器:

public function updateMenu($id) 
{ 
    $page = Page::find($id); 
    $parent = Input::get('parent'); 
    $new_order = Input::get('index'); 

     if($parent == $page->parent) 
     { 
      if($page->order_id > $new_order) 
      { 
       DB::table('pages') 
        ->where('parent',$parent) 
        ->where('order_id', '<', $page->order_id) 
        ->increment('order_id'); 
      } 
      else 
      { 
       DB::table('pages') 
        ->where('parent',$parent) 
        ->where('order_id', '>=', $page->order_id) 
        ->decrement('order_id'); 
      } 
     } 
     else 
     { 
      DB::table('pages') 
       ->where('parent',$page->parent) 
       ->where('order_id', '>', $page->order_id) 
       ->decrement('order_id');  
     } 



    $page->order_id = Input::get('index'); 
    $page->parent = Input::get('parent'); 

    $page->save(); 

    return $id; 
} 

我正在做一個排序列表,任何人都可以看到的一個問題?

+0

檢查是否爲'$ parent'&'$ page-> parent'爲空? – Rikesh 2013-03-01 08:17:15

+0

如果'$ page-> parent == 16'和'$ parent == null',你的if語句會比較:'null == 16'這肯定是'false'。 – Leri 2013-03-01 08:17:39

+0

我傳遞新的父ajax,所以如果父母保持相同的$ parent = null,然後檢查我的數據庫中它的當前父母許多結果$ page-> parent = 0但null == 0不執行,而不是$ parent = 16和當前父$ page-> parent = 16,16 = 16它執行 – user1994529 2013-03-01 08:21:36

回答

0

像這樣的語句if($parent == $page->parent)返回true或false。所以如果它的價值是null它去else聲明。

+0

是的,當我的$ parent = null時,它會進入else語句 – user1994529 2013-03-01 08:23:32

+0

我該如何解決這個問題? – user1994529 2013-03-01 08:26:04