zoukankan      html  css  js  c++  java
  • (转)PHP不用第三个变量交换两个变量的值的几种方法

    方法一:使用字符串截取(适用于字符串类型)

     

    <?php

    $a = "fsdfds";

    $b = "xiaorui";

    $a = $a.$b;

    $b = substr($a,0,strlen($a)-strlen($b));

    $a = substr($a,strlen($b));

    echo $a."-".$b;

    ?>

    方法二:使用list()

     

    <?php

    $a = "fsdfds";

    $b = "xiaorui";

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

    echo $a."-".$b;

    ?>

    方法三:使用数组分割(适用于字符串类型

    <?php

    $a = "fsdfds";

    $b = "xiaorui";

    $b = $a."#$".$b;

    $b = explode("#$",$b);

    $a = $b[1];

    $b = $b[0];

    echo $a."-".$b;

    ?>

    说明:这种方法也可以用于交换两个变量的值,但是这个方法听说好像不太标准,因为有人说这里的数组$b也算是一个新变量了(我有点不同意,看怎么理解了)。

    方法四:使用异或运算

     /**

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

    方法五:使用数组

    <?php

    $a = "fsdfds";

    $b = "xiaorui";

    $a = array($b, $b = $a)[0];

    echo $a."-".$b;

    ?>

    方法六:使用数组 

     // 输出原始值

    $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,'

     // 输出结果值

  • 相关阅读:
    【娱乐向】制作Chrome天气预报扩展程序
    WCF入门四[WCF的通信模式]
    WCF入门三[WCF宿主]
    WCF入门二[WCF的配置文件]
    WCF入门一[WCF概述]
    通过Aspose.Word和ZXING生成复杂的WORD表格
    Dapper.Extension的基本使用
    startUML常用的组合片段
    Sublime Text 2 配置及其使用
    计算机领域会议汇总
  • 原文地址:https://www.cnblogs.com/fxlttkl/p/7269560.html
Copyright © 2011-2022 走看看