"is there a php function for swapping the values of two variables?" Answer’s

0

TL;DR

There isn't a built-in function. Use swap3() as mentioned below.

Summary

As many mentioned, there are multiple ways to do this, most noticable are these 4 methods:

function swap1(&\$x, &\$y) {
// Warning: works correctly with numbers ONLY!
\$x ^= \$y ^= \$x ^= \$y;
}
function swap2(&\$x, &\$y) {
list(\$x,\$y) = array(\$y, \$x);
}
function swap3(&\$x, &\$y) {
\$tmp=\$x;
\$x=\$y;
\$y=\$tmp;
}
function swap4(&\$x, &\$y) {
extract(array('x' => \$y, 'y' => \$x));
}

I tested the 4 methods under a for-loop of 1000 iterations, to find the fastest of them:

• swap1() = scored approximate average of 0.19 seconds.
• swap2() = scored approximate average of 0.42 seconds.
• swap3() = scored approximate average of 0.16 seconds. Winner!
• swap4() = scored approximate average of 0.73 seconds.

And for readability, I find swap3() is better than the other functions.

Note

• swap2() and swap4() are always slower than the other ones because of the function call.
• swap1() and swap3() both performance speed are very similar, but most of the time swap3() is slightly faster.
• Warning: swap1() works only with numbers!
Wednesday, March 31, 2021