2014-05-12 19 views
4

我想這樣做:PHP:分配變量並在相同if語句中對它進行測試?

if ($field = myFunction($node, 'field') && $field['value']) { 
    //do something with $field 
} 

PHPStorm警告$場,即使它只是設置& &後不確定。這只是PHPStorm是片狀還是有一些原因實際上不應該工作?

+1

它不會警告我,您使用的是哪個版本? –

+0

@槍它不是一個解決方案,仔細閱讀 –

+1

@槍實際上他想在左邊的語句中分配一個變量,並在右邊比較 –

回答

4

這是運營商的優先級。只要看看http://docs.php.net/manual/en/language.operators.precedence.php

它應該是:

if (($field = myFunction($node, 'field')) && $field['value']) { 
    //do something with $field 
} 

爲您正常工作。在這種情況下,PhpStorm不會警告

這種情況表明,如果您不是100%確定操作順序,最好總是使用圓括號。想象一下,如果PhpStorm在這種情況下沒有提醒你並且在你的測試中按預期工作,會發生什麼。

+0

+1擊敗我吧...... :) –

+0

您鏈接了PL版本的它包含非英文單詞(參見*Przykład#1 Associativity *)。我建議你鏈接英文網頁。 –

+0

謝謝,我剛糾正鏈接 –