PHP:“^”符号在这里是什么意思?求助!

以下是几行PHP代码
下面的“^”,怎么会在两个String变量间作运算符?而且结果还是String!

$txt = "123";
$key = "U2FsdGV=";
$result = $txt[2] ^ $key[5]; //这里的“^”到底是个什么?怎么$result最后也是一个String变量

echo $result; //运行后,最后输出的是“t”,为什么?!

这个问题是从http://www.jb51.net/article/23148.htm这里的源码中抽出来的。
可能我问的有问题,大神也可以从这里面找寻答案。

能清理一下程序运行的过程中,变量值的变化。

这是异或运算符,按二进制位进行异或运算(XOR)。

其中:

0 ^ 0 = 0;
1 ^ 1 = 0;
0 ^ 1 = 1;
1 ^ 0 = 1;

举个例子:

echo 101 ^ 7; // 输出 98

为什么呢?下面就来分析一下。

101写成二进制是1100101;

7写成二进制是111,即0000111(将两个数的位数补成一样);

根据前面的表,按位运算:

    1 1 0 0 1 0 1
  ^ 0 0 0 0 1 1 1
---------------------
    1 1 0 0 0 1 0

就得到了二进制数1100010,转化为十进制就是98。


希望能解开您的疑惑。


参见:维基百科:逻辑异或:

http://zh.wikipedia.org/wiki/%E9%80%BB%E8%BE%91%E5%BC%82%E6%88%96

温馨提示:内容为网友见解,仅供参考
第1个回答  2014-02-05
这是按位与,这个你具体可以搜索一下 PHP 按位与,你就懂了追问

可是,按位与 是两个整数之间的操作吧?结果也应该是整数啊?!

第2个回答  2014-02-06
我记得学PHP时是和运算符一起学的。什么相位与……觉得没有用就没研究

php中这个符号 ^ 的作用及使用方法
^ 一般用在正则表达式里(如:\/^d+[^123]$\/ ,匹配N个数字的字符串并且字符串里不出现123)

php中 & || ^ 的符号意思。
&:这个符号叫“与”,表示左右两边的操作数都为“真”时才为“真”,口诀是真真为真,真假为假,假真为假,假假为假;||:这个符号叫“或”,表示左右两边的操作数只要有一个为“真”时就为“真”,口诀是真真为真,真假为真,假真为真,假假为假;^:这个符号叫“非”,表示将右边的操作...

^是什么意思?
1、^,中文尚无通用名称,可以是乘方、插入符号、插入符、脱字符号 [1] 等;英文称为caret (英语发音:\/ˈkærət\/),是个倒 V 形的字素。说得明白一点,^ 就是 ASCII 码位 5Ehex 或其他字符集称为 帽子(hat)、控制符(control)又或 上箭头(uparrow) 的移格字符。2、...

PHP语言PHP语言里的位运算符&、|、^ 、~、〈〈、〉〉这些符号我一个也...
表示把00110000右移为00000011(十进制3)。应该说明的是,对于有符号数,在右移时,符号位将随同移动。当为正数时,最高位补0,而为负数时,符号位为1,最高位是补0或是补1 取决于编译系统的规定 <?php a = 48;temp = $a>>4;echo sprintf("%d", $temp)."\\n"; \/\/十进制 ...

php中::是什么意思?
一、php中的::是调用类中的静态方法或者常量,属性的符号。PHP,是英文超级文本预处理语言Hypertext Preprocessor的缩写。中文名:“超文本预处理器”是一种通用开源脚本语言。二、PHP 是一种 HTML 内嵌式的语言,是一种在服务器端执行的嵌入HTML文档的脚本语言,语言的风格有类似于C语言,语法吸收了C...

php是什么意思
php通常指超文本预处理器,用于面向对象、命令式编程,是一种通用开源脚本语言。 主要特点: 为开源性和免费性、快捷性、数据库连接的广泛性、面向过程和面向对象并用。优点是利于学习,使用广泛。此外,php还可以指菲律宾比索的标准货币代码符号,MPLS网络中的倒数第二跳弹出功能。是英文超级文本预处理语言Hypertext Preproce...

php里的::符号是什么意思?
这个意思就是:调用anydb类中的成员方法:getLayer();调用类的成员属性和方法。箭头->是在类中(大括号内)调用成员属性和方法。

^这是什么符号?
& 是和、与的意思,英文符号相当与and这个词。字符 & 的最早历史可以追溯到公元1世纪,是拉丁语 et 的连写。最早的 & 很像 E 和 T 的组合,但随着印刷技术的发展,这个符号逐渐形成自己的样式,并脱离其原始的影子。

这里的这些小符号怎么打出来 php 怎么去除 或者 替换掉 这些特殊字符...
该图中的符号有两种情况,一种就是小图片,一种就是emoji表情图片。处理方法就是替换。示例如下:一.替换文本中的图片为空:str="母亲节";strs= preg_replace('\/<\\s*img\\s+[^>]*?src\\s*=\\s*(\\'|\\")(.*?)\\\\1[^>]*?\\\/?\\s*>\/i', "", $str);echo $str;二.处理文本中的em...

php基本符号
注解符号:\/\/ 单行注解 \/* *\/ 多行注解 引号的使用:' ' 单引号,没有任何意义,不经任何处理直接拿过来;" " 双引号,php动态处理然后输出,一般用于变数.变数形态:一种是True 即 真的;另一种是False 即假的 常见变数形态::string 字串(数字\/汉字\/等等)integer 整数(1、2、3、4、5、0、-1...

相似回答