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.