xor符号表示?

jol*_*olt 2 php xor

PHP手册并没有说有一个,但是...也许有一个隐藏的?

简单地说,我喜欢使用if具有符号操作表示的方式,这样我确信在搜索文档时,我总能找到我正在寻找的东西.但是xor我的代码可能包含这样的字符串/值或其他内容.比如,模板类中的方法 - e xor cize();.

pax*_*blo 6

PHP中的独占或运算符是^.

如果你想使用xor(在任何语言中,真的,不仅仅是PHP),但你担心搜索它会发现类似的东西exorcize,你可以只搜索" xor "(两边都有空格).

或者,任何防止周围文本成为xor单词一部分的正则表达式,例如(仅限示例):

[^a-zA-Z0-9_]xor[^a-zA-Z0-9_]
Run Code Online (Sandbox Code Playgroud)


Cas*_*Chu 5

你可以使用,!=如果他们都已经布尔了.

if (true != false) // xor
    ...
Run Code Online (Sandbox Code Playgroud)

当然,这与在搜索结果中出现误报有同样的问题,因此您可能采用个人约定(可能会使您的同事感到困惑)使用其他PHP不等运算符:

if (true <> false) // xor
    ...
Run Code Online (Sandbox Code Playgroud)

如果他们不是布尔人,你需要施展他们.

if (!$a <> !$b) // xor
    ...
Run Code Online (Sandbox Code Playgroud)


编辑:经过一些PHP非常宽松的类型强制的实验,我给你一个自己创建的伪运算符,==!运算符!$a ==! $b相当于$a xor $b.

if ('hello' ==! 0) // equivalent to ('hello' xor 0)
    ...
Run Code Online (Sandbox Code Playgroud)

这实际上是'hello' == !0> 'hello' == true> true == true> true,这就是为什么它可以作为xor.这是有效的,因为当PHP将一个布尔值与其他任何布尔值进行比较时,它也会将第二个参数转换为布尔值.