5.3. Exchanging Values Without Using Temporary Variables
Problem
You want to exchange the values in two variables without using additional variables for storage.
Solution
To swap $a and $b:
list($a,$b) = array($b,$a);
Discussion
PHP’s list( )
language construct lets you assign values from an array to individual
variables. Its counterpart on the
right side of the expression, array( )
, lets you construct arrays from
individual values. Assigning the array that array( ) returns to the variables in the list( ) lets you juggle the order of those values. This works
with more than two values, as well:
list($yesterday,$today,$tomorrow) = array($today,$tomorrow,$yesterday);
This method isn’t faster than using temporary variables, so you should use it for clarity, but not speed.
See Also
Documentation on list( ) at
http://www.php.net/list and array( ) at http://www.php.net/array.
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access