php if语句为null和0?

时间:2013-03-01 08:59:53

标签: php

我在执行if语句时遇到问题

  

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

我的美元$ parent = null和我的$ page-> parent = 0如何解决这个问题,他们是平等的?

我认为这是一个问题,因为它不知道null等于0

$page = Page::find($id);
$parent = Input::get('parent'); // Null

我希望你们能帮我解决这个问题

这是我的控制器以防万一你不想看看它

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',$parent)
                ->where('order_id', '>=', $new_order)
                ->increment('order_id');

    }



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

    $page->save();

    return $id;
}

3 个答案:

答案 0 :(得分:1)

我认为 0 可以等于 NULL 。也许if($parent == $page->parent || ($parent == null && $page->parent == 0))更有帮助

答案 1 :(得分:0)

使用严格相等运算符:===而不是==

localhost> = 0 === null
false
localhost> = 0 == null
true

答案 2 :(得分:0)

您可以使用:

if(is_null($parent) && ($page->parent==0))
{

}