PHP两值交换

看了网上流传的一些PHP面试题。其中有一道是关于变量交换的,而且不借助中间变量完成。在平常的程序开发中,一般的思维模式是借助中间量达到变量交换的目的,几乎每个人都可以完成这样的操作。面试在于考察一个人的思维方式,当然无法和平常的开发相提并论,网上流传的答案如下。

$a = "abcd";
$b = "1234";
echo "初始化时 a=$a,b=$b
"; $a = $a . $b; $b = strlen( $b ); $b = substr( $a, 0, (strlen($a) - $b ) ); $a = substr( $a, strlen($b) ); echo "交换后 a=$a,b=$b
";

下面是我采用的方式,效果是相同的。使用了PHP中的list函数,和一个临时数组。

$a = 'javascript';
$b = 'java';
echo "交换前a= $a, b= $b
"; list($b, $a) = array($a, $b); echo "交换后a= $a, b= $b
";

不过我认为还会有更好的方式达到同样的效果,鉴于每个人的理解层次不同,我也能想到的答案就只有第二个了。

现在还没有评论

留下您的大名