php 不用新变量直接交换现有两个变量的值
封面图
•
2025-10-08
•
PHP
141
0
0
0
在 PHP 中,如果你想**不使用新变量**来交换两个现有变量的值,可以使用**列表赋值(list)**或者**数组解构**的方式。以下是几种常见的方法: --- ### ✅ 方法 1:使用 `list()`(适用于数组或可遍历对象) ```php $a = 10; $b = 20; list($a, $b) = [$b, $a]; echo "a: $a, b: $b"; // 输出:a: 20, b: 10 ``` > 注意:`list()` 只能用于数组或可遍历对象。 --- ### ✅ 方法 2:使用数组解构(PHP 7.1+) ```php $a = 10; $b = 20; [$a, $b] = [$b, $a]; echo "a: $a, b: $b"; // 输出:a: 20, b: 10 ``` 这是最简洁、推荐的方法,不需要额外变量。 --- ### ❌ 不推荐的方法:使用临时变量 虽然这种方法有效,但你明确说“不用新变量”,所以不推荐: ```php $temp = $a; $a = $b; $b = $temp; ``` --- ### ✅ 总结 | 方法 | 是否需要新变量 | 适用性 | |------|----------------|--------| | `list($a, $b) = [$b, $a];` | 否 | 数组/可遍历对象 | | `[$a, $b] = [$b, $a];` | 否 | PHP 7.1+,适用于任何可赋值的变量 | | 临时变量 | 是 | 通用 | --- 如果你只是想交换两个变量的值,并且不想引入新的变量,推荐使用第二种方式: ```php [$a, $b] = [$b, $a]; ``` 这是最干净、最现代的做法。
上一篇:
php Memcache
下一篇:
PHP数字金额转大小格式,同时说明思路
标题录入,一次不能超过6条
返回顶部
留言
留言
评论