PHP不用第三变量交换2个变量的值的解决方法_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 />';

时间: 2024-08-17 20:08:08

PHP不用第三变量交换2个变量的值的解决方法_php实例的相关文章

PHP Session变量不能传送到下一页的解决方法_php技巧

我认为,出现这个问题的原因有以下几点: 1.客户端禁用了cookie 2.浏览器出现问题,暂时无法存取cookie 3.php.ini中的session.use_trans_sid = 0或者编译时没有打开--enable-trans-sid选项 为什么会这样呢?下面我解释一下: Session储存于服务器端(默认以文件方式存储session),根据客户端提供的session id来得到用户的文件,取得变量的值,session id可以使用客户端的Cookie或者Http1.1协议的Query_

php file_get_contents抓取Gzip网页乱码的三种解决方法_php实例

把抓取到的内容转下编码即可($content=iconv("GBK", "UTF-8//IGNORE", $content);),我们这里讨论的是如何抓取开了Gzip的页面.怎么判断呢?获取的头部当中有Content-Encoding: gzip说明内容是GZIP压缩的.用FireBug看一下就知道页面开了gzip没有.下面是用firebug查看我的博客的头信息,Gzip是开了的. 复制代码 代码如下: 请求头信息原始头信息Accept text/html,appl

PHP不用第三个变量交换两个变量的值的方法总结

"PHP不用第三个变量交换两个变量的值"这个题看到过好多次了,看来面试确实喜欢考这道题.今天,对于这个题目,我自己总结了几种方法,可能不全,大家来互相补充. 方法一:使用字符串截取 <?php $a = "fsdfds"; $b = "xiaorui"; $a = $a.$b; $b = substr($a,0,strlen($a)-strlen($b)); $a = substr($a,strlen($b)); echo $a."

php 变量定义方法_php实例

1.定义常量define("CONSTANT", "Hello world."); 常量只能包含标量数据(boolean,integer,float 和 string). 调用常量时,只需要简单的用名称取得常量的值,而不能加"$"符号,如:echo CONSTANT: 注: 常量和(全局)变量在不同的名字空间中.这意味着例如 TRUE 和 $TRUE 是不同的. 2.普通变量$a = "hello"; 3.可变变量(使用两个美

深入理解PHP变量的值类型和引用类型_php实例

在PHP中,大部分变量类型,如字符串,整型,浮点,数组等都是值类型的,而类和对象是引用类型,在使用的时候,需要注意这一点. 看到网友在讨论PHP的&符号,要彻底理解它的用法,就有必要讨论一下变量的两种形式. PHP的变量在内存中是这样存储的,变量保存的并不直接是值的内容,而是地址.例如: $a = 1; 我们看起来,似乎变量$a直接存储了 1 这个值.而实际情况是,PHP解释器创建了变量$a,将值:1 存入内存中的某个地方,再将值的地址存到变量$a中. 需要取值时,先找到变量$a中的地址,再根据

使用PHP静态变量当缓存的方法_php实例

下面这个PHP的代码实例,功能是帮助用户重置密码,requestResetPassword是接收用户重置密码的请求并且做了相应的检查.为了更好的复用性,我将重置密码的操作单独分配到一个新的resetPassword的函数,更改完密码的后再调用sendEmail向用户发送一封通知邮件. 复制代码 代码如下: /** * 用户请求重置密码的接收器 */function requestResetPassword() {    //检查用户是否存在    if( !checkUserExists( $_

PHP把网页保存为word文件的三种方法_php实例

一.PHP生成word的两种思路或原理 1.利用windows下面的 com组件2.利用PHP将内容写入doc文件之中具体实现方法如下. 二.利用windows下面的com组件 原理:com作为PHP的一个扩展类,安装过office的服务器会自动调用word.application的com,可以自动生成文档,PHP官方文档手册:http://www.php.net/manual/en/class.com.php 使用官方实例: 复制代码 代码如下: <?php// starting word$w

php 伪造HTTP_REFERER页面URL来源的三种方法_php实例

php获取当前页面的前一个页面URL地址,即当前页面是从哪个页面链接过来的,可以使用$_SERVER['HTTP_REFERER'],但是这个来源页面的URL地址是可以被伪造和欺骗的,本文章向大家介绍伪造HTTP_REFERER页面URL的三种方法,需要的朋友可以参考一下. $_SERVER['HTTP_REFERER']是php用来判断页面上级来源页面的一个超级变局变量了,我们可以使用$_SERVER['HTTP_REFERER']来判断是从哪个页面进入到此页面了,这样我们可以进行更好的跟踪了

twig里使用js变量的方法_php实例

本文实例讲述了twig里使用js变量的方法的方法.分享给大家供大家参考,具体如下: 先看一段代码 <script type="text/javascript"> jQuery(document).ready(function(){ jQuery(#my_input).change(function(){ var value = jQuery(#my_input).val(); jQuery.ajax({ url: {{ path('ParteAccidentes_ajax'