PHP 常用例子

无需使用任何临时变量即可交换两个变量的值。该方法涉及使用 +、*、/ 和按位等运算符。

方法 1:使用 + 运算符

在下面的示例中,+ 运算符用于交换两个变量 xy 的值。

<?php
function swap($x, $y) {
  echo "交换前.\n";
  echo "x = $x \n";
  echo "y = $y \n";

  //交换技术
  $x = $x + $y;
  $y = $x - $y;
  $x = $x - $y;

  echo "交换后.\n";
  echo "x = $x \n";
  echo "y = $y \n";
}

swap(10, 25);
?> 

上面的代码将给出以下输出:

交换前.
x = 10
y = 25
交换后.
x = 25
y = 10 

方法 2:使用 * 运算符

+ 运算符一样,* 运算符还可以用于交换两个变量 xy 的值。

<?php
function swap($x, $y) {
  echo "交换前.\n";
  echo "x = $x \n";
  echo "y = $y \n";

  //交换技术
  $x = $x * $y;
  $y = $x / $y;
  $x = $x / $y;

  echo "交换后.\n";
  echo "x = $x \n";
  echo "y = $y \n";
}

swap(10, 25);
?> 

上面的代码将给出以下输出:

交换前.
x = 10
y = 25
交换后.
x = 25
y = 10 

方法3:使用/运算符

同样,/运算符也可以用来交换两个值变量xy

<?php
function swap($x, $y) {
  echo "交换前.\n";
  echo "x = $x \n";
  echo "y = $y \n";

  //交换技术
  $x = $x / $y;
  $y = $x * $y;
  $x = $y / $x;

  echo "交换后.\n";
  echo "x = $x \n";
  echo "y = $y \n";
}

swap(10, 25);
?> 

上面的代码将给出以下输出:

交换前.
x = 10
y = 25
交换后.
x = 25
y = 10 

方法4 : 使用按位运算符

按位XOR (^)运算符还可以用于交换两个变量x。当两个操作数中相同位置的两位中的一位为 1 时,返回 1,否则返回 0。

<?php
function swap($x, $y) {
  echo "交换前.\n";
  echo "x = $x \n";
  echo "y = $y \n";

  //交换技术
  $x = $x ^ $y;
  $y = $x ^ $y;
  $x = $x ^ $y;

  echo "交换后.\n";
  echo "x = $x \n";
  echo "y = $y \n";
}

swap(10, 25);
?> 

上面的代码将给出以下输出:

交换前.
x = 10
y = 25
交换后.
x = 25
y = 10 

使用上述方法的缺点

  • 如果其中一个变量的值为 0,则基于乘法和除法的方法会失败。
  • 基于加法的方法可能会因算术溢出而失败。 。如果xy太大,对操作数执行的操作可能会导致整数超出范围。