我来自 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 且 $rows[0]->updated_by=null。请注意,第一个只有一个额外的包装括号。
我从第一个语句中得到了正确的结果。我期望得到 0 的结果,这是第一个结果,而不是第二个结果。我无法弄清楚其中的区别。
最佳答案
和
具有较低的precedence比三元运算符(?
和 :
)。因此,您需要将其括在括号中((
和 )
),以便首先对其进行求值。
请注意,如果您使用了 &&
,则无需使用额外的括号。
关于需要 PHP 运算符(operator)帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8599566/