2012-02-26 153 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。你需要完整的条件语句才能工作。