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.

Get PHP Cookbook now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.