background image

PHP 代码:PHP 不用第三变量交换 个变量的值的解决方法

本文为大家分享介绍 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';