PHP不消第三变量互换2个变量的值

    添加时间:2013-5-30 点击量:

          以前做过一道php口试题是如许的:不应用第三个变量实现互换两个变量的值。一般都是借助第三个中心变量来实现本来两个变量的值互换,然则这道题却请求不克不及应用中心变量,这对于初学者来说也算是一个困难了。网上找到的几种办法总结如下:



    //字符串版本 连络应用substr,strlen两个办法实现
    
    ¥a=a;
    ¥b=b;
    echo 互换前 ¥a:.¥a.,¥b:.¥b.<br />;
    ¥a.=¥b;
    ¥b=substr¥a,0,(strlen¥a)-strlen¥b)));
    ¥a=substr¥astrlen¥b));
    echo 互换后¥a:.¥a.,¥b:.¥b.<br />;

    echo -----------------------<br/>;

    //字符串版本 应用str_replace办法实现
    ¥a=a;
    ¥b=b;
    echo 互换前 ¥a:.¥a.,¥b:.¥b.<br />;
    ¥a.=¥b;
    ¥b=str_replace¥b, , ¥a);
    ¥a=str_replace¥b, , ¥a);
    echo 互换后¥a:.¥a.,¥b:.¥b.<br />;

    echo -----------------------<br/>;

    //字符串版本 连络应用list办法和array实现
    ¥a=a;
    ¥b=b;
    echo 互换前 ¥a:.¥a.,¥b:.¥b.<br />;
    list¥b¥a)=array¥a¥b);
    echo 互换后¥a:.¥a.,¥b:.¥b.<br />;

    echo -----------------------<br/>;

    //字符串和数字都实用 应用异或运算
    ¥a=a;
    ¥b=b;
    echo 互换前 ¥a:.¥a.,¥b:.¥b.<br />;
    ¥a=¥a^¥b;
    ¥b=¥b^¥a;
    ¥a=¥a^¥b;
    echo 互换后¥a:.¥a.,¥b:.¥b.<br />;

    echo -----------------------<br/>;

    //只实用于数字
    ¥a=3;
    ¥b=5;
    echo 互换前 ¥a:.¥a.,¥b:.¥b.<br />;
    ¥a=¥a+¥b;
    ¥b=¥a-¥b;
    ¥a=¥a-¥b;
    echo 互换后¥a:.¥a.,¥b:.¥b.<br />;


    所有随风而逝的都属于昨天的,所有历经风雨留下来的才是面向未来的。—— 玛格丽特·米切尔 《飘》
    分享到: