【问题标题】:Make a substitution between the values of two variables in PHP在 PHP 中的两个变量的值之间进行替换
【发布时间】:2013-02-21 07:35:20
【问题描述】:

我想知道是否可以在 PHP 中在两个变量的值之间进行替换

我可以更好地解释它:

<?php
    $a = "Cat";
    $b = "Dog";

    // The strange/non-existent function I am talking about //
    MakeSubstitution($a, $b);

    // After this (non-existent) function the values of the variables should be:
        // $a = "Dog"
        // $b = "Cat"
?>

那么,它存在吗?我进行了搜索,但没有找到任何结果。 提前致谢。

【问题讨论】:

  • function MakeSubstitution($a,$b) { $t = $a; $a = $b; $b = $a }。完成了吗?
  • 您想交换两个变量的值吗?这有什么用例?在调用者的范围内编写你自己的方法(看看上面的 Brad Christie - 如果你想修改它们,不要忘记接受变量作为引用)
  • 你真的期待这样一个微不足道的问题的功能吗?伙计,等到事情变得复杂,你必须编写自己的 200 多行算法。
  • 我知道几行代码就足够了,但是如您所知,PHP 将简化简单的事情,我认为有一个函数可以做到这一点。没问题...

标签: php


【解决方案1】:

试试这个:

$a = "Cat";
$b = "Dog";

list($a,$b) = array($b,$a);

echo $a;
echo $b;

【讨论】:

  • 这绝对是我最喜欢的答案,因为“功能”只保留在一行中。也感谢其他人。
【解决方案2】:

在函数中通过引用处理它们,并交换它们的值:

function swap ( &$a, &$b ) {
    $t = $a; // Create temp variable with value of $a
    $a = $b; // Assign to $a value of $b
    $b = $t; // Assign to $b value of temp variable
}

$dog = "dog";
$cat = "cat";

swap($dog, $cat);

echo $dog; // Output 'cat'

显然你也可以使用按位运算符,并避免创建临时函数/var/array 的开销:

$cat = "cat";
$dog = "dog";

$cat = $cat ^ $dog;
$dog = $cat ^ $dog;
$cat = $cat ^ $dog;

echo $cat . $dog; // Output 'dogcat'

设法找到了按位方法的一个很好的说明:https://stackoverflow.com/a/528946/54680

【讨论】:

  • 这其实是应该接受的答案。没有数组,没有其他函数,只是简单的分配。这也可能是最快的。
  • 是的,这个函数可以准确地描述我需要做什么。唯一的缺点是需要自己写函数。
猜你喜欢
  • 1970-01-01
  • 2014-11-12
  • 1970-01-01
  • 2015-06-12
  • 1970-01-01
  • 1970-01-01
  • 2021-12-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多