2013-03-01 121 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