PHP中高级工程师面试重点讲解视频课程
Go快速入门浅显易懂视频教程-基础篇
Go快速入门浅显易懂视频教程-中级篇
很easy,也很钻牛角尖的面试题 : $a=3 $b=6 交换两个变量的值,不借助第三个变量交换值
原创杂文 / 时间:2015-08-08 19:41:43 / 阅读:1544 / 分享:0

//首先我提供的第一个方法是:直接赋值:

$b = 3;

$a = 6;


echo "a:".$a."\nb:".$b."\n\n";


//第二种方法:差值相减法:


$a = $a - $b;

$b = $a + $b;

$a = $b - $a;


echo "a:".$a."\nb:".$b."\n\n";


//第三种方法:位运算法:


$a = $a^$b;  

$b = $b^$a;  

$a = $a^$b; 


echo "a:".$a."\nb:".$b."\n\n";



//第四种方法:list函数处理法:


list($a, $b) = array($b, $a); 


echo "a:".$a."\nb:".$b."\n\n";



//第五种方法:substr 和strlen处理法:


$a = $a . $b;  

$b = strlen( $b );  

$b = substr( $a, 0, (strlen($a) - $b ) );  

$a = substr( $a, strlen($b) );  


echo "a:".$a."\nb:".$b."\n\n";



//方法六:比较有限制,必须用一个两个字符串都都不能出现的字符做为分隔符

$a = $b.','.$a ;  

$a = explode(',', $a);  

$b = $a[1];  

$a = $a[0];  


echo "a:".$a."\nb:".$b."\n\n";




 如果是数字 上面的六种方式都能处理,如果$a $b 都是字符串的话 第二种显然会有限制,第六种也会有些限制

 如果执行上面的结果如下

a:6

b:3


a:3

b:6


a:6

b:3


a:3

b:6


a:6

b:3


a:3

b:6


不要看晕了哦,哈哈


按时间分类