1.3 布尔值的正确打开方式

关于布尔值,在PHP中可以这么来写:

        <? php $flag = True; ? >
        <? php $flag = TRUE; ? >
        <? php $flag = true; ? >

有点儿像孔乙己的“茴香豆”写法,这3段代码都可以正常运行。但是,哪个最好?哪个是正确的?在PHP中,常量规定为大写,第二行代码显然是正确的。

下面我们再来看一下比较语句。比较常用于两个变量之间,但是,也会有这样的代码:

        <? php
        if($price = $cart->price){
            echo 'function return TRUE';
        }else{
            echo 'function return FALSE';
        }
        ?>

可以看到,这段代码也没有错,但不怎么容易理解。仔细看,这个分支里面的表达式是一个变量跟一个对象方法的赋值,并不是一个布尔值运算,很容易把人引入不正确的思路。

这种方法尽量不要用。正确的写法可以是这个样子的:

        $user_id == $user->getUserId()