当前位置:

首页 >php

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

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

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

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

本文引用地址: 

发表评论 2 位网友发表了评论  

  1. 张莎莎 TencentTravel Windows 说:

    囧rz…这个。。我也搞不到。。

    [回复]

  2. 麦子加菲 Internet Explorer Windows 说:

    现在该显摆显摆ruby了,ruby里有所谓的并行赋值,so
    a,b = b,a
    更为强大的赋值:
    c=[1,2]
    a,b = *c #a=1,b=2

    *a=1,2,3 #a=[1,2,3]

    [回复]

添加新的评论 浏览评论»  

:wink: :-| :-x :twisted: :) 8-O :( :roll: :-P :oops: :-o :mrgreen: :lol: :idea: :-D :evil: :cry: 8) :arrow: :-? :?: :!:



注意:
1、本站启用了审核机制,你的留言可能稍后才会显示,请不要重复提交,谢谢。
2、留言时的头像是Gravatar提供的服务。想设置的看这里