2013-10-26 43 views
0

以下我已經實施,但它對我來說沒有意義...任何人都可以幫忙嗎?如果聲明與或在php

我想以下幾點:

如果monthsdue不等於one_month_due支付不受長期訂單然後{// 做一些 }

,但得到它工作我不得不使用或 - 看下面

if(($monthsDue!=1) || ($Payment_Type!=STANDING_ORDER)){ 
    // send emails according to more criteria 
} 

例如 如果他們到期的一個月,但通過付現金或支票,然後應該發生某件事 如果他們在一個月到期的長期定單支付則沒有什麼應該發生 如果他們是由於2個月按定期的東西一定要發生。

我很確定我錯過了明顯!

+0

你想'和'你使用'或'(或''||)?如果你用'&&'代替'||'會怎樣? –

+0

if(($ monthDue> 1)&&($ Payment_Type!==「STANDING_ORDER){//發送emaills}意思是如果monthsdue大於1個月到期並且付款不等於STANDING_ORDER – Alex

回答

2

你應該只需要替換你的||與& &。

1
if(($monthsDue!=1) && ($Payment_Type!=STANDING_ORDER)){ 
    // send emails according to more criteria 
} 

& & = AND,而|| = OR。

$this = true; 
$that = false; 

$truthiness = $this and $that; 

想猜測什麼$感實性等於:

http://php.net/manual/en/language.operators.logical.php

但是,如果使用AND和OR,你最終會得到通過這樣的事情絆倒了?

如果你說錯......錯了!上述

$感實性的值爲true。爲什麼? =具有比和更高的優先級。添加括號來顯示隱秩序,使之更清楚:

($truthiness = $this) and $that 

如果使用& &,而不是在第一個代碼示例,它會按預期工作,是假的。

只是要小心!

0

您需要更改此聲明:

if(($monthsDue!=1) || ($Payment_Type!=STANDING_ORDER))

這意味着「如果monthsdue不等於one_month_due 支付是不是長期訂單則{//做一些事情}」

但你需要那邊

所以更換您的OR(或||)與AND運算符(&&

將其更改爲

if(($monthsDue!=1) && ($Payment_Type!=STANDING_ORDER))