2012-02-26 159 views
2

我想,如果不是PHP XOR - 如何使用if()?

function edit_save($data, $post_id, $post_type) 
{ 
    if (($post_type == 'A') OR ($post_type == 'B')) { 

      // do this 

    } 

我可以使用XOR如下 - 但它並沒有這樣的工作...

function edit_save($data, $post_id, $post_type) 
{ 
    if ($post_type == 'A' XOR 'B') { // pseudo code 

      // do this 

    } 

任何建議如何簡化整體的語法和現在的2條件語句中變量的潛在選項?

+3

你只需要添加一個X到或在你的代碼。 – BoltClock 2012-02-26 16:36:11

+0

謝謝,但有沒有**的方式,而不重複變量**,呈現變量的兩個選項? – pepe 2012-02-26 16:38:35

+2

我不明白如何一個字符串可以在同一時間等於'A'**和**'B'... – 2012-02-26 16:41:21

回答

1

好像你想要的東西居然是這樣的:

if (in_array($post_type,array('A','B'))) { 
    ... 
} 

其中在PHP 5.4+看起來會更好:

if (in_array($post_type,['A','B'])) { 
    ... 
} 
2

呃?

function edit_save($data, $post_id, $post_type) 
{ 
    if (($post_type == 'A') XOR ($post_type == 'B')) { 

      // do this 

    } 
5

嘗試:

function edit_save($data, $post_id, $post_type) 
{ 
    if (($post_type == 'A') XOR ($post_type == 'B')) { 

      // do this 

    } 

在你的代碼的第二個語句('B')將始終返回true。你需要完整的條件語句才能工作。