PHP不用第三變量交換2個(gè)變量的值的解決方法
更新時(shí)間:2013年06月02日 20:42:50 作者:
本篇文章是對在php中交換兩個(gè)變量的值的方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
以前做過一道php面試題是這樣的:不使用第三個(gè)變量實(shí)現(xiàn)交換兩個(gè)變量的值。一般都是借助第三個(gè)中間變量來實(shí)現(xiàn)原來兩個(gè)變量的值交換,但是這道題卻要求不能使用中間變量,這對于初學(xué)者來說也算是一個(gè)難題了。網(wǎng)上找到的幾種方法總結(jié)如下:
//字符串版本 結(jié)合使用substr,strlen兩個(gè)方法實(shí)現(xiàn)
$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方法實(shí)現(xiàn)
$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/>';
//字符串版本 結(jié)合使用list方法和array實(shí)現(xiàn)
$a="a";
$b="b";
echo '交換前 $a:'.$a.',$b:'.$b.'<br />';
list($b,$a)=array($a,$b);
echo '交換后$a:'.$a.',$b:'.$b.'<br />';
echo '-----------------------<br/>';
//字符串和數(shù)字都適用 使用異或運(yùn)算
$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/>';
//只適用于數(shù)字
$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 />';
復(fù)制代碼 代碼如下:
//字符串版本 結(jié)合使用substr,strlen兩個(gè)方法實(shí)現(xiàn)
$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方法實(shí)現(xiàn)
$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/>';
//字符串版本 結(jié)合使用list方法和array實(shí)現(xiàn)
$a="a";
$b="b";
echo '交換前 $a:'.$a.',$b:'.$b.'<br />';
list($b,$a)=array($a,$b);
echo '交換后$a:'.$a.',$b:'.$b.'<br />';
echo '-----------------------<br/>';
//字符串和數(shù)字都適用 使用異或運(yùn)算
$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/>';
//只適用于數(shù)字
$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 />';
相關(guān)文章
如何用PHP來實(shí)現(xiàn)一個(gè)動態(tài)Web服務(wù)器
這篇文章介紹了如何用PHP來實(shí)現(xiàn)一個(gè)動態(tài)Web服務(wù)器,文章思路清晰,并附有演示代碼地址,需要的朋友可以參考下2015-07-07
php中session_id()函數(shù)詳細(xì)介紹,會話id生成過程及session id長度
這篇文章主要介紹了php中session_id()函數(shù)詳細(xì)介紹,會話id生成過程及session id長度的相關(guān)資料,需要的朋友可以參考下2015-09-09
yii2.0實(shí)現(xiàn)pathinfo的形式訪問的配置方法
這篇文章主要介紹了yii2.0實(shí)現(xiàn)pathinfo的形式訪問的配置方法的相關(guān)資料,需要的朋友可以參考下2016-04-04
yii2中結(jié)合gridview如何使用modal彈窗實(shí)例代碼詳解
這篇文章主要介紹了yii2中如何結(jié)合gridview使用modal彈窗的相關(guān)資料,需要的朋友可以參考下2016-06-06

