PHP XOR - 如何使用if()?

时间:2012-02-26 16:34:51

标签: php boolean xor

我想知道是否而不是

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 个答案:

答案 0 :(得分:5)

尝试:

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

            // do this

    }

代码中的第二个语句('B')将始终返回true。您需要完整的条件语句才能工作。

答案 1 :(得分:2)

嗯?

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

            // do this

    }

答案 2 :(得分:2)

看起来像你想要的实际上就是这样:

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

在PHP 5.4+中看起来更好看:

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