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

2015-01-24信息快讯网

本篇文章是对在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';
$b='b';
echo '交换前 $a:'.$a.',$b:'.$b.'<br />';
$a=$a^$b;
$b=$b^$a;
$a=$a^$b;
echo '交换后$a:'.$a.',$b:'.$b.'<br />';

echo '-----------------------<br/>';

//只适用于数字
$a=3;
$b=5;
echo '交换前 $a:'.$a.',$b:'.$b.'<br />';
$a=$a+$b;
$b=$a-$b;
$a=$a-$b;
echo '交换后$a:'.$a.',$b:'.$b.'<br />';

php获取一个变量的名字的方法
php预定义变量使用帮助(带实例)
调整PHP的性能
PHP数据过滤的方法
php另类上传图片的方法(PHP用Socket上传图片)
php中过滤非法字符的具体实现
PHP时间戳 strtotime()使用方法和技巧
php float不四舍五入截取浮点型字符串方法总结
web server使用php生成web页面的三种方法总结
PHP Session 变量的使用方法详解与实例代码
PHP中判断变量为空的几种方法分享
PHP Global定义全局变量使用说明
浅析php中常量,变量的作用域和生存周期
用Json实现PHP与JavaScript间数据交换的方法详解
phpize的深入理解
基于php socket(fsockopen)的应用实例分析
深入PHP操作MongoDB的技术总结
深入php数据采集的详解
基于php下载文件的详解
用PHP实现浏览器点击下载TXT文档的方法详解
web站点获取用户IP的安全方法 HTTP_X_FORWARDED_FOR检验
获取用户Ip地址通用方法与常见安全隐患(HTTP_X_FORWARDED_FOR)
PHP下打开phpMyAdmin出现403错误的问题解决方法
php在window iis的莫名问题的测试方法
php去除换行符的方法小结(PHP_EOL变量的使用)
php和javascript之间变量的传递实现代码
ajax php传递和接收变量实现思路及代码
非常精妙的PHP递归调用与静态变量使用
php中的注释、变量、数组、常量、函数应用介绍
php empty() 检查一个变量是否为空
php中关于codeigniter的xmlrpc的类在进行数据交换时的类型问题
php小技巧 把数组的键和值交换形成了新的数组,查找值取得键
php 冒泡排序 交换排序法
©2014-2024 dbsqp.com