程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP綜合 >> PHP不用第三變量交換2個變量的值的解決方法

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 />';

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved