[PHP] 変数Aと変数Bの値を入れ替える|3つ以上の変数も入れ替えも

更新:

2つの変数の入れ替え

▼PHPで2つの変数を入れ替えたいとき、一時的な変数を用意して行う方法が思いつきます。

php

<?php
$a = "yes";
$b = "no";

$tmp = $a;  //$tmpは一時的に値を保持しておく為の変数
$a   = $b;
$b   = $tmp;
?>

変数$aと変数$bを入れ替える。

▼上記でもOKですが、list()言語構造を使うとでも同じことができます。

php

<?php
$a = "yes";
$b = "no";

list($a, $b) = array($b, $a);
var_dump($a);	//string(2) "no"
?>

list()を使って変数を入れ替える。

こちらは1行で完結し不要な変数を作りません。コードがすっきりして可読性も高くなります。

3つの変数の入れ替え

▼更に引数を増やすことで3つ以上の変数を入れ替えることも可能です。

php

<?php
$a = "yes";
$b = "no";
$c = "neither";

list($a, $b, $c) = array($b, $c, $a);
var_dump($a);	//string(2) "no"
var_dump($b);	//string(7) "neither"
var_dump($c);	//string(3) "yes"
?>