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
";
不过我认为还会有更好的方式达到同样的效果,鉴于每个人的理解层次不同,我也能想到的答案就只有第二个了。
现在还没有评论