这些处理默认值的条件赋值之间有区别吗


Is there a difference between these conditional assignments which process default values?

作为验证MVC控制器中函数的参数($rowcount)的一部分,它可能被留空,并从会话中检索默认值(每页$pp),我在2011年写了这行代码:

$pp = $pp  &&  $pp != '' ? $pp : $rowcount;

我想知道我是否意识到了一些技巧,使其优于看似更直接的口味:

$pp = $pp != '' ? $pp : $rowcount;

也许,双重冗余检查?有区别吗?

''始终为false,因此第一条语句具有冗余条件。请注意,isset($pp)而不是是多余的。