PHP if语句为null

PHP if语句为null,php,Php,我的控制器中有以下if语句: if($parent == $page->parent) public function updateMenu($id) { $page = Page::find($id); $parent = Input::get('parent'); $new_order = Input::get('index'); if($parent == $page->parent) { if

我的控制器中有以下
if
语句:

if($parent == $page->parent)
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;
}
其中
$parent==null
有时,当
$parent
是例如
16
时,它执行我的if语句,但只有当它为null时,它才不执行它。我做错了什么

这是我的控制器:

if($parent == $page->parent)
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;
}
公共函数更新单元($id)
{
$page=page::find($id);
$parent=Input::get('parent');
$new_order=Input::get('index');
如果($parent==$page->parent)
{
如果($page->order\u id>$new\u order)
{
DB::表('页面')
->其中('parent',$parent)
->其中('order\u id','=',$page->order\u id)
->减量('order_id');
}
}
其他的
{
DB::表('页面')
->其中('parent',$page->parent)
->其中('order\u id','>',$page->order\u id)
->减量('order_id');
}
$page->order_id=Input::get('index');
$page->parent=Input::get('parent');
$page->save();
返回$id;
}

我正在制作一个可排序的列表,有人能看到问题吗?

如果($parent==$page->parent)返回true或false,像这样的语句
。因此,如果它的值是
null
,它将转到
的else
语句。

检查
$parent
&
$page->parent
是否为null?如果
$page->parent==16
$parent==null
您的
if
语句将进行比较:
null==16
这肯定是
false
。我通过了使用ajax创建新的父级,因此如果父级保持不变$parent=null,然后在我的数据库中检查它的当前父级,结果是$page->parent=0,但null==0不执行,而不是$parent=16和当前父级$page->parent=16,16=16执行