PHP程序员学习笔记|如何学习PHP

个人总结的PHP学习方法


总结PHP不用第三个变量交换两个变量的值的几种方法

2017-6-28 0phpcom 经典文章


“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也算是一个新变量了(我有点不同意,看怎么理解了)。


方法四:使用异或运算


<?php

$a = "fsdfds";

$b = "xiaorui";

$a = $a^$b;

$b = $b^$a;

$a = $a^$b;

echo $a."-".$b;

?>

说明:这个方法是网上看到的,我仔细试了一下,发现这个居然是有BUG的。用次方法只能交换字符相同的两个字符串型的变量,不然结果是不正确的。


方法五:使用数组


<?php

$a = "fsdfds";

$b = "xiaorui";

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

echo $a."-".$b;

?>


以上是本人总结的五个,方法肯定不止这些。如果你有更好的方法,请不要吝惜,在下面的评论框中分享出来,大家一起来互相的学习!

« php程序员的面试宝典,最好的面试题分享 | php判断是否是整数的两种方法»
发表评论:


站点统计
  • 建站日期: 2015-2-10 18:22
  • 运行时间: 3324 天
  • 日志总数: 221 篇
  • 置顶日志: 0 篇
  • 草稿数目: 15 篇
  • 待审文章: 0 篇
  • 页面数量: 0 个
  • 评论数量: 53 条
  • 微语数量: 5 条
  • 微语评论: 0 条
  • 友链数量: 1 个
  • 加密文章: 1 篇
  • 分类总量: 10 个
  • 父分类数: 10 个
  • 子分类数: 0 个
  • 用户数量: 1 人
  • 管理员数: 1 人
  • 驻站作者: 0 位
  • 标签数量: 11 个
  • 附件总量: 223 件
  • 最后发表: 2021-5-8 16:17



订阅Rss