国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > PHP > 正文

PHP互換兩個變量值的方法(不用第三變量)

2024-05-04 23:52:18
字體:
來源:轉載
供稿:網友

前言

今天在這里我們就來看看,在PHP中如何在不使用第三變量的情況下,達到交換兩個變量值得目的。詳細的解說見代碼注釋,下面來一起看看吧。

一、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>'; // 輸出結果值

運行結果:

     交換之前 $a 的值:This is A, $b 的值:This is B

     交換之后 $a 的值:This is B, $b 的值:This is A

三、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>'; // 輸出結果值

運行結果:

     交換之前 $a 的值:This is A, $b 的值:This is B

     交換之后 $a 的值:This is B, $b 的值:This is A

四、異或

代碼:

<?php/** * 雙方變量為字符串或者數字時,可用交換方法四 * 使用異或運算 */$a = "This is A"; // a變量原始值$b = "This is B"; // b變量原始值echo '交換之前 $a 的值:'.$a.', $b 的值:'.$b,'<br>'; // 輸出原始值/** * 原始二進制: * $a:010101000110100001101001011100110010000001101001011100110010000001000001 * $b:010101000110100001101001011100110010000001101001011100110010000001000010 *  * 下面主要使用按位異或交換,具體請參照下列給出的二進制過程, */$a=$a^$b; // 此刻$a:000000000000000000000000000000000000000000000000000000000000000000000011$b=$b^$a; // 此刻$b:010101000110100001101001011100110010000001101001011100110010000001000001$a=$a^$b; // 此刻$a:010101000110100001101001011100110010000001101001011100110010000001000010echo '交換之后 $a 的值:'.$a.', $b 的值:'.$b,'<br>'; // 輸出結果值

運行結果:

     交換之前 $a 的值:This is A, $b 的值:This is B

     交換之后 $a 的值:This is B, $b 的值:This is A

五、加(+)減(-)運算符

代碼:

<?php/** * 雙方變量為數字時,可用交換方法五 * 使用加減運算符,相當于數學運算了^_^ */$a = "This is A"; // a變量原始值$b = "This is B"; // b變量原始值echo '交換之前 $a 的值:'.$a.', $b 的值:'.$b,'<br>'; // 輸出原始值$a=$a+$b; // $a $b和值$b=$a-$b; // 不解釋..$a=$a-$b; // 不解釋..echo '交換之后 $a 的值:'.$a.', $b 的值:'.$b,'<br>'; // 輸出結果值

運行結果:

     交換之前 $a 的值:1, $b 的值:2

     交換之后 $a 的值:2, $b 的值:1

總結

好了,以上差不多就是在php中不借助第三個變量交換兩個變量值的所有方法了,當然,肯定還有更好地,我這里算是拋磚引玉了。說到底,都是小算法,大家有空自己也可以研究下。希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流。謝謝大家對VeVb武林網的支持。


注:相關教程知識閱讀請移步到PHP教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 定结县| 陇川县| 聊城市| 健康| 大同县| 盘锦市| 大埔区| 辛集市| 庐江县| 海伦市| 盐山县| 兴和县| 平江县| 林西县| 奉化市| 三穗县| 怀安县| 古交市| 砀山县| 定安县| 唐河县| 会理县| 余庆县| 姚安县| 黎平县| 南雄市| 旌德县| 南岸区| 灵宝市| 台前县| 鄂托克旗| 慈利县| 天津市| 仪陇县| 栖霞市| 梧州市| 乃东县| 庆云县| 专栏| 荣成市| 寻甸|