一、substr() && strlen()
<?php
/**
* 雙方變量爲字符串時,可用交換方法一
* 使用substr()結合strlen()兩個方法達到交換變量值得目的
*/
$a = "This is A"; // a變量原始值
$b = "This is B"; // b變量原始值
echo '交換之前 $a 的值:'.$a.', $b 的值:'.$b,'<br>'; // 輸出原始值
$a .= $b; // 將$b的值追加到$a中
/**
* $b得到$a值詳解:
* 先通過strlen()分別計算出$a和$b中字符串的長度【此時$a是原始$a和$b的合值】
* 通過strlen($a)-strlen($b)即可得出原始$a的值長度
* 在通過substr()方法在合併後的$a中從0開始截取到$a的長度,那麼即可得到原始$a的值
* $a得到$b值詳解:
* 由於此刻$b已經是$a的原始值了,而$a合併後的值爲原始$a+原始$b的值,故用substr()在$a中從$b(原始$a)長度位置截取,則去的內容則爲原始$b,則將$b值付給$a成功
*/
$b = substr($a,0,(strlen($a)-strlen($b)));
$a = substr($a, strlen($b));
echo '交換之後 $a 的值:'.$a.', $b 的值:'.$b,'<br>'; // 輸出結果值
運行結果:
交換之前 $a 的值:This is A, $b 的值:This is B
交換之後 $a 的值:This is B, $b 的值:This is A
二、str_replace()
<?php
/**
* 雙方變量爲字符串時,可用交換方法二
* 使用str_replace()方法達到交換變量值得目的
* 此方法較第一種,邏輯上稍微簡單點
*/
$a = "This is A"; // a變量原始值
$b = "This is B"; // b變量原始值
echo '交換之前 $a 的值:'.$a.', $b 的值:'.$b,'<br>'; // 輸出原始值
$a .= $b; // 將$b的值追加到$a中
$b = str_replace($b, "", $a); // 在$a(原始$a+$b)中,將$b替換爲空,則餘下的返回值爲$a
$a = str_replace($b, "", $a); // 此時,$b爲原始$a值,則在$a(原始$a+$b)中將$b(原始$a)替換爲空,則餘下的返回值則爲原始$b,交換成功
echo '交換之後 $a 的值:'.$a.', $b 的值:'.$b,'<br>'; // 輸出結果值
三、list() && list()
<?php
/**
* 雙方變量爲字符串時,可用交換方法三
* 使用list()和array()方法達到交換變量值得目的
* 此方法較第一、二種,代碼最簡潔
*/
$a = "This is A"; // a變量原始值
$b = "This is B"; // b變量原始值
echo '交換之前 $a 的值:'.$a.', $b 的值:'.$b,'<br>'; // 輸出原始值
list($b,$a) = array($a,$b); // list() 函數用數組中的元素爲一組變量賦值。瞭解這個,相信其他的不用我多說了吧
echo '交換之後 $a 的值:'.$a.', $b 的值:'.$b,'<br>'; // 輸出結果值