PHP 代码:PHP 不用第三变量交换 2 个变量的值的解决方法
本文为大家分享介绍 php 中交换两个变量的值的方法,供大家参考下
以前做过一道 php 面试题是这样的:不使用第三个变量实现交换两个变量的值。一般都是
借助第三个中间变量来实现原来两个变量的值交换,但是这道题却要求不能使用中间变
量,这对于初学者来说也算是一个难题了。网上找到的几种方法总结如下:
复制代码 代码如下:
//
字符串版本 结合使用 substr,strlen 两个方法实现
$a
="a";
$b
="b";
echo
'
交换前 $a:'.
$a
.',$b:'.
$b
.'<br />';
$a
.=
$b
;
$b
=
substr
(
$a
,0,(
strlen
(
$a
)-
strlen
(
$b
)));
$a
=
substr
(
$a
,
strlen
(
$b
));
echo
'交换后$a:'.
$a
.',$b:'.
$b
.'<br />';
echo
'-----------------------<br/>';
//
字符串版本 使用 str_replace 方法实现
$a
="a";
$b
="b";
echo
'
交换前 $a:'.
$a
.',$b:'.
$b
.'<br />';
$a
.=
$b
;
$b
=
str_replace
(
$b
, "",
$a
);
$a
=
str_replace
(
$b
, "",
$a
);
echo
'交换后$a:'.
$a
.',$b:'.
$b
.'<br />';
echo
'-----------------------<br/>';
//
字符串版本 结合使用 list 方法和 array 实现
$a
="a";
$b
="b";
echo
'
交换前 $a:'.
$a
.',$b:'.
$b
.'<br />';
list(
$b
,
$a
)=
array
(
$a
,
$b
);
echo
'交换后$a:'.
$a
.',$b:'.
$b
.'<br />';
echo
'-----------------------<br/>';
//
字符串和数字都适用 使用异或运算
$a
='a';