日志列表

RSS

php 不使用第三方变量和数组交换两个变量的值

[ 2009年03月11日 08:22 | by Veidy.lei  ] 评论(2) » | 阅读次数:1298

今天去面试有一道题,怎样不用第三方变量和数组交换二个变量的值,在那里想了半天也没想出么样实现-_-!!,回来后查了下资料,可以用位运算中的异或运算。
下面是试例代码

<?php
$a = 'str1';
$b = 'str2';
 
echo "交换前:\$a = {$a}; \$b = {$b};";
$b = $b ^ $a;
$a = $b ^ $a;
$b = $b ^ $a;
echo "交换后:\$a = {$a}; \$b = {$b};";
?>

此算法能够实现是由异或运算的特点决定的,通过异或运算能够使数据中的某些位翻转,其他位不变。这就意味着任意一个数与任意一个给定的值连续异或两次,值不变。

Filed under: php | Tags : , ,
分页 1 / 11