在PHP中按位或运算符的行为混淆

时间:2017-05-13 00:03:30

标签: php

<?php  
$a="abc";  
$b="def";  
$c=$a|$b;  
echo $c.'<br>';  
echo gettype($c);
?>

上面的代码输出一个值“egg”和类型'string' 当我使用逻辑OR运算符时,它输出1并输入'boolean'。

这是让我困惑的简单代码。我是PHP的新手,所以我不知道在字符串中使用按位/逻辑OR运算符是否真的有效。如果有效,那么它为什么这样输出。
提前谢谢。

1 个答案:

答案 0 :(得分:0)

按位或运算符&#39;添加&#39;所有字母的位一个接一个。查看ASCII表中的字母代码:http://www.asciitable.com/

'a' == 0x61 
'd' == 0x64
'a' | 'd' == 0x61 | 0x64 == 0x65 == 'e'

等等。

&#39; abc&#39;的结果| &#39; DEF&#39;特利是一个鸡蛋&#39; :d