How to swap the values of two variables in PHP (without using a third variable)

黄舟
Release: 2023-03-06 08:12:01
Original
1976 people have browsed it

Preface

Today we will take a look at how to achieve the purpose of exchanging two variables in PHP without using a third variable. See the code comments for detailed explanation, let’s take a look below.

1. substr() && strlen()

Code:

'; // 输出原始值 $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,'
'; // 输出结果值
Copy after login



Run result:

The value of $a before the exchange: This is A, the value of $b: This is B

The value of $a after the exchange: This is B, value of $b: This is A

2. str_replace()

Code:

'; // 输出原始值 $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,'
'; // 输出结果值
Copy after login



Run result:

The value of $a before exchange: This is A, the value of $b: This is B

After exchange, the value of $a: This is B, the value of $b: This is A

3. list() && list()

Code:

'; // 输出原始值 list($b,$a) = array($a,$b); // list() 函数用数组中的元素为一组变量赋值。了解这个,相信其他的不用我多说了吧 echo '交换之后 $a 的值:'.$a.', $b 的值:'.$b,'
'; // 输出结果值
Copy after login



Run result:

Value of $a before exchange: This is A, $b Value of: This is B

Value of $a after exchange: This is B, Value of $b: This is A

4. Exclusive OR

Code:

'; // 输出原始值 /** * 原始二进制: * $a:010101000110100001101001011100110010000001101001011100110010000001000001 * $b:010101000110100001101001011100110010000001101001011100110010000001000010 * * 下面主要使用按位异或交换,具体请参照下列给出的二进制过程, */ $a=$a^$b; // 此刻$a:000000000000000000000000000000000000000000000000000000000000000000000011 $b=$b^$a; // 此刻$b:010101000110100001101001011100110010000001101001011100110010000001000001 $a=$a^$b; // 此刻$a:010101000110100001101001011100110010000001101001011100110010000001000010 echo '交换之后 $a 的值:'.$a.', $b 的值:'.$b,'
'; // 输出结果值
Copy after login



Running result:

Value of $a before exchange: This is A, the value of $b: This is B

The value of $a after exchange: This is B, the value of $b: This is A

5. Add (+) Subtraction (-) operator

Code:

'; // 输出原始值 $a=$a+$b; // $a $b和值 $b=$a-$b; // 不解释.. $a=$a-$b; // 不解释.. echo '交换之后 $a 的值:'.$a.', $b 的值:'.$b,'
'; // 输出结果值
Copy after login



Running result:

The value of $a before the exchange: 1, the value of $b: 2

The value of $a after the exchange: 2, the value of $b: 1

Summary

Okay, the above is almost all the ways to exchange the values of two variables in PHP without using a third variable. Of course, there must be a better way. I am here to introduce some ideas. . After all, they are all small algorithms, and you can study them yourself when you have time. I hope the content of this article can be of some help to everyone's study or work. If you have any questions, you can leave a message to communicate. Thank you all for your support of Script House.

The above is the content of the method of exchanging the values of two variables in PHP (without using the third variable). For more related content, please pay attention to the PHP Chinese website (m.sbmmt.com)!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn