# "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

Not the answer you're looking for? Browse other questions tagged :
Share
Related Search Terms
Relevant Tags Search Terms