我是c++背景和php新手,谁来帮我一下两者的区别:
$totalupdatedrows = (count($rows) == 1 and !isset($rows[0]->updated_by)) ? 0 : count($rows);
$totalupdatedrows = count($rows) == 1 and !isset($rows[0]->updated_by) ? 0 : count($rows);
假设count($rows) = 1 and $rows[0]->updated_by=null。请注意,第一个只有一个额外的包装括号。
我从第一个语句得到正确的结果。我希望得到的结果是0这是第一个的结果,而不是第二个的结果。
and
的优先级低于三元操作符(?
和:
)。因此,您需要将其括在括号中((
和)
),以便首先对其求值。
请注意,如果您使用了&&
,则不需要使用额外的括号。
检查PHP文档-操作符优先级and
几乎是最后一个。
如果你把and
改成&&
,它的顺序会比?:
高