2011-12-22 45 views
2

我在PHP C++背景和新手,有人請幫我兩者之間的區別:計數($行)1和$行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); 

假設= [0] - > updated_by = NULL。請看第一個只有一個額外的包裝圓括號。

我從第一條語句得到正確的結果。我期望得到0的結果,這是第一個結果,而不是第二個結果。我無法弄清楚區別。

回答

3

and比三元運營商(?:)有更低的precedence。因此,您需要將其包裝在括號內(()),以便首先對其進行評估。

請注意,如果您使用過&&,則不需要使用額外的括號。

+0

:優先級最低,如C++,但PHP「和」甚至低於它。我最好使用&&來與C++兼容。 – user774250 2011-12-22 04:56:32