现在的位置: 首页 -> PHP学习 -> PHP面试题 -> 总结PHP不用第三个变量交换两个变量的值的几种方法

总结PHP不用第三个变量交换两个变量的值的几种方法

2013-08-17 18:18评论数 0 ⁄ 被浏览 12157 views+

“PHP不用第三个变量交换两个变量的值”这个题看到过好多次了,看来面试确实喜欢考这道题。今天,对于这个题目,我自己总结了几种方法,可能不全,大家来互相补充。


有些仅适用于字符串,方法二和方法五比较不错。


方法一:使用字符串截取(适用于字符串类型)


<?php

$a = "fsdfds";

$b = "xiaorui";

$a = $a.$b;

$b = substr($a,0,strlen($a)-strlen($b));

$a = substr($a,strlen($b));

echo $a."-".$b;

?>


方法二:使用list()


<?php

$a = "fsdfds";

$b = "xiaorui";

list($a,$b) = array($b,$a);

echo $a."-".$b;

?>


方法三:使用数组分割(适用于字符串类型


<?php

$a = "fsdfds";

$b = "xiaorui";

$b = $a."#$".$b;

$b = explode("#$",$b);

$a = $b[1];

$b = $b[0];

echo $a."-".$b;

?>


说明:这种方法也可以用于交换两个变量的值,但是这个方法听说好像不太标准,因为有人说这里的数组$b也算是一个新变量了(我有点不同意,看怎么理解了)。


方法四:使用异或运算


<?php

$a = "fsdfds";

$b = "xiaorui";

$a = $a^$b;

$b = $b^$a;

$a = $a^$b;

echo $a."-".$b;

?>

说明:这个方法是网上看到的,我仔细试了一下,发现这个居然是有BUG的。用次方法只能交换字符相同的两个字符串型的变量,不然结果是不正确的。


方法五:使用数组


<?php

$a = "fsdfds";

$b = "xiaorui";

$a = array($b, $b = $a)[0];

echo $a."-".$b;

?>


以上是本人总结的五个,方法肯定不止这些。如果你有更好的方法,请不要吝惜,在下面的评论框中分享出来,大家一起来互相的学习!

 

文章出自:http://www.daixiaorui.com/read/29.html 本站所有文章,除注明出处外皆为原创,转载请注明本文地址,版权所有。

分享到:

目前有 0 条评论  @我要评论

    您的每一个评论都是对我的一份支持

     博客二维码

    昵称 *

    邮箱 *