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


Posted in PHP onJune 02, 2013

以前做过一道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并发访问实例代码
Sep 06 PHP
php中将汉字转换成拼音的函数代码
Sep 08 PHP
PHP判断表单复选框选中状态完整例子
Jun 24 PHP
PHP中文编码小技巧
Dec 25 PHP
phpcms手机内容页面添加上一篇和下一篇
Jun 05 PHP
PHP合并数组+号和array_merge的区别
Jun 25 PHP
PHP实现的迪科斯彻(Dijkstra)最短路径算法实例
Sep 16 PHP
PHP Class SoapClient not found解决方法
Jan 20 PHP
thinkPHP5.0框架事务处理操作简单示例
Sep 07 PHP
Laravel数据库读写分离配置的方法
Oct 13 PHP
Yii框架视图、视图布局、视图数据块操作示例
Oct 14 PHP
tp5 sum某个字段相加得到总数的例子
Oct 18 PHP
基于php socket(fsockopen)的应用实例分析
Jun 02 #PHP
深入PHP操作MongoDB的技术总结
Jun 02 #PHP
深入php数据采集的详解
Jun 02 #PHP
基于php下载文件的详解
Jun 02 #PHP
用PHP实现浏览器点击下载TXT文档的方法详解
Jun 02 #PHP
优化PHP代码技巧的小结
Jun 02 #PHP
PHP无限分类(树形类)的深入分析
Jun 02 #PHP
You might like
图书管理程序(二)
2006/10/09 PHP
phpnow php探针环境检测代码
2014/11/04 PHP
php之header的不同用法总结(实例讲解)
2017/11/28 PHP
javascript中的关于类型转换的性能优化
2010/12/14 Javascript
event对象获取方法总结在google浏览器下测试
2013/11/03 Javascript
JavaScript避免代码的重复执行经验技巧分享
2014/04/17 Javascript
javascript实现获取cookie过期时间的变通方法
2014/08/14 Javascript
JavaScript学习笔记之JS对象
2015/01/22 Javascript
JavaScript中匿名函数用法实例
2015/03/23 Javascript
JavaScript判断数组是否包含指定元素的方法
2015/07/01 Javascript
纯javascript实现分页(两种方法)
2015/08/26 Javascript
js实现超简单的展开、折叠目录代码
2015/08/28 Javascript
JavaScript学习笔记之取数组中最大值和最小值
2016/03/23 Javascript
ReactJs快速入门教程(精华版)
2016/11/28 Javascript
微信小程序之ES6与事项助手的功能实现
2016/11/30 Javascript
Vue 2中ref属性的使用方法及注意事项
2017/06/12 Javascript
微信小程序 转发功能的实现
2017/08/04 Javascript
js实现图片粘贴上传到服务器并展示的实例
2017/11/08 Javascript
详解webpack babel的配置
2018/01/09 Javascript
laypage+SpringMVC实现后端分页
2019/07/27 Javascript
Javascript类型判断相关例题及解析
2020/08/26 Javascript
原生js实现表格翻页和跳转
2020/09/29 Javascript
详细讲解用Python发送SMTP邮件的教程
2015/04/29 Python
python获取一组汉字拼音首字母的方法
2015/07/01 Python
python实现决策树分类算法
2017/12/21 Python
如何用Python制作微信好友个性签名词云图
2019/06/28 Python
python实现知乎高颜值图片爬取
2019/08/12 Python
关于windows下Tensorflow和pytorch安装教程
2020/02/04 Python
Python爬虫自动化获取华图和粉笔网站的错题(推荐)
2021/01/08 Python
Gap中国官网:美式休闲风服饰
2017/02/05 全球购物
阿里健康官方海外旗舰店:阿里健康国际自营
2017/11/24 全球购物
2014年班组长工作总结
2014/11/20 职场文书
大学生村官工作总结2015
2015/04/09 职场文书
2015年预算员工作总结
2015/05/14 职场文书
鸡毛信观后感
2015/06/11 职场文书
CSS3中Animation实现简单的手指点击动画的示例
2021/07/15 HTML / CSS