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

 

<?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也算是一个新变量了(我有点不同意,看怎么理解了)。

 

方法四:使用异或运算

 /**

 * 原始二进制:
 * $a:010101000110100001101001011100110010000001101001011100110010000001000001
 * $b:010101000110100001101001011100110010000001101001011100110010000001000010
 * 
 * 下面主要使用按位异或交换,具体请参照下列给出的二进制过程,
 */
$a=$a^$b; // 此刻$a:000000000000000000000000000000000000000000000000000000000000000000000011
$b=$b^$a; // 此刻$b:010101000110100001101001011100110010000001101001011100110010000001000001
$a=$a^$b; // 此刻$a:010101000110100001101001011100110010000001101001011100110010000001000010
echo '交换之后 $a 的值:'.$a.', $b 的值:'.$b,'

 

方法五:使用数组

 

<?php

$a = "fsdfds";

$b = "xiaorui";

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

echo $a."-".$b;

?>

方法六:使用数组 

 // 输出原始值

$a .= $b; // 将$b的值追加到$a中

$b = str_replace($b, "", $a); // 在$a(原始$a+$b)中,将$b替换为空,则余下的返回值为$a

$a = str_replace($b, "", $a); // 此时,$b为原始$a值,则在$a(原始$a+$b)中将$b(原始$a)替换为空,则余下的返回值则为原始$b,交换成功

echo '交换之后 $a 的值:'.$a.', $b 的值:'.$b,'

 // 输出结果值

posted on 2017-08-01 17:10  北风吹秋风凉  阅读(188)  评论(0编辑  收藏  举报