note 78466 added to language.variables.variable

From: Date: Sat, 13 Oct 2007 13:22:05 +0000
Subject: note 78466 added to language.variables.variable
Groups: php.notes 
Request: Send a blank email to php-notes+get-131360@lists.php.net to get a copy of this message
This is a handy function I put together to allow variable variables to be used with arrays. To use the function, when you want to reference an array, send it in the form 'array:key' rather than 'array[key]'. For example: <?php function indirect ($var, $value) // Replaces $$var = $value { $var_data = $explode($var, ':'); if (isset($var_data[1])) { ${$var_data[0]}[$var_data[1]] = $value; } else { ${$var_data[0]} = $value; } } $temp_array = array_fill(0, 4, 1); $temp_var = 1; $int_var_list = array('temp_array[2]', 'temp_var'); while (list($key, $var_name) = each($int_var_list)) { // Doesn't work - creates scalar variable called "$temp_array[2]" $$var_name = 0; } var_dump($temp_array); echo '<br>'; var_dump($temp_var); echo '<br>'; // Does work! $int_var_list = array('temp_array:2', 'temp_var'); while (list($key, $var_name) = each($int_var_list)) { indirect($var_name, 2); } var_dump($temp_array); echo '<br>'; var_dump($temp_var); echo '<br>'; ?> ---- Server IP: 87.124.64.96 Probable Submitter: 87.194.245.158 ---- Manual Page -- http://www.php.net/manual/en/language.variables.variable.php Edit -- https://master.php.net/note/edit/78466 Del: integrated -- https://master.php.net/note/delete/78466/integrated Del: useless -- https://master.php.net/note/delete/78466/useless Del: bad code -- https://master.php.net/note/delete/78466/bad+code Del: spam -- https://master.php.net/note/delete/78466/spam Del: non-english -- https://master.php.net/note/delete/78466/non-english Del: in docs -- https://master.php.net/note/delete/78466/in+docs Del: other reasons-- https://master.php.net/note/delete/78466 Reject -- https://master.php.net/note/reject/78466 Search -- https://master.php.net/manage/user-notes.php

« previous php.notes (#131360) next »