PHP中交換兩個變量的值


首先,采用php的list數據結構。上代碼,然后再解析

 

[php]  view plain  copy
 
 print?
  1. function swap(&$a, &$b) {  
  2.     list ( $a, $b ) = array ($b, $a );  
  3. }  

 

list:把數組中的值賦值給list中的變量,相當於把$b的值賦值給$a,把$a的值賦值給$b.同時,注意&引用運算符的使用,這里是引用傳遞而不是值傳遞。

 

異或運算

按位異或的三個特點:

 

  1. 0^1=1 0^0=0 =>因此,0異或任何數等於任何數本身
  2. 1^0=1 1^1=0 =>因此,1異或任何數等於任何數取反
  3. 任何數異或自己=>把自己置0

 

好的,話不多說,上代碼

 

[php]  view plain  copy
 
 print?
  1. function swap1(&$a, &$b){  
  2.     $a = $a ^ $b;  
  3.     $b = $a ^ $b;  
  4.     $a = $b ^ $a;  
  5. }  

 

好的,分析一下,為什么這樣也能實現交換。

$a = $a ^ $b;
$b = $a ^ $b = ($a ^ $b) ^ $b = $a ^ ($b ^ $b) = $a ^ 0,根據異或特點,0與任何數異或等於任何數本身。同理可推導,$a=$b


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM