我目前的代码如下:
if ( ( $status == 'active' ) ||
( $status == 'full' ) ) {
我还需要包含一个AND语句。因此,如果$ status为full或active且$ position匹配'need photo'或'completed',则会显示。如何包含AND语句?
我尝试了以下操作,但它似乎不起作用:
if ( ( $status == 'active' ) ||
( $status == 'full' ) &&
( $position == 'need photo' ) ||
( ( $position == 'completed' ) ) {
有任何帮助吗?谢谢! :-)我对这一切都很新。我试过Google,但找不到明确的答案。
答案 0 :(得分:3)
&&
的优先级高于||
,因此您尝试的代码与以下内容相同:
if ($status == 'active' || ($status == 'full' && $position == 'need photo') || $position == 'completed') {
以简单英语表示,如果status
为active
,或status
full
为position
且need photo
为position
,则为completed
为if (($status == 'active' || $status == 'full') && ($position == 'need photo' || $position == 'completed')) {
。
但你想要:
status
这意味着,如果active
为status
或full
为position
,则need photo
为position
或{{1} }是completed
。
答案 1 :(得分:1)
根据PHP documentation on operator precedence,AND
优先于OR
,因此您需要将OR
表达式与括号分组:
if ( ($status == 'active || $status == 'full) && ($position == 'need photo' || $position == 'completed') ) {
...
答案 2 :(得分:0)
我认为你只是缺少一些括号。你想要的是if ((A) && (B))
,其中A和B是复杂的表达式(包含两个子表达式的表达式)。
在您的情况下:A = ( $status == 'active' ) || ( $status == 'full' )
,B = ( $position == 'need photo' ) || ( $position == 'completed' )
所以,试试这个:
if ( **(** ( $status == 'active' ) || ( $status == 'full' ) **)** && **(** ( $position == 'need photo' ) || ( $position == 'completed' ) **)** ) {