Shawn McKenzie wrote: > Lamonte wrote: >> Setting a variable inside a function and making it global inside an >> inner function doesn't work? >> >> Right well I have created this function: >> >> [code] >> function getForumChildrenTree( $id ) >> { >> $id = intval( $id ); >> $treeResult = array( >> 'topics' => array(), >> 'posts' => array(), >> 'forums' => array(), >> ); >> applyForumChildrenTree( $id ); >> } >> [/code] >> >> What this function does: Basically this function is set to an id of a >> forum id, then theres a variable that stores an array. Then theres a >> recursive function called "applyForumChildrenTree" to update the >> "treeResult" variable, but it's not exactly working. For some reason >> when I did print_r inside the "applyForumChildrenTree" the array is as >> applied: >> >> [quote] >> Array >> ( >> [forums] => Array >> ( >> [0] => 3 >> [1] => 8 >> [2] => 5 >> ) >> >> [topics] => Array >> ( >> [0] => 5 >> ) >> >> [posts] => Array >> ( >> [0] => 5 >> ) >> >> ) >> [/quote] >> >> Then inside the actual function "getForumChildrenTree" I tried >> outputting the "treeResult" array using "print_r" after the recursive >> function "applyForumChildrenTree" as follows: >> >> [code] >> function getForumChildrenTree( $id ) >> { >> $id = intval( $id ); >> $treeResult = array( >> 'topics' => array(), >> 'posts' => array(), >> 'forums' => array(), >> ); >> applyForumChildrenTree( $id ); >> print_r($treeResult); >> } >> [/code] >> >> and it showed me a blank array, (default array I created) as follows: >> >> [quote] >> Array >> ( >> [topics] => Array >> ( >> ) >> >> [posts] => Array >> ( >> ) >> >> [forums] => Array >> ( >> ) >> >> ) >> [/quote] >> >> Is this a bug? I'm using PHP 5.2.4 > > Well you haven't defined anything global in your code, unless you did > inapplyForumChildrenTree(), in which case it needs to be global > everywhere that you want to use it as global. > > Easiest way would just be to use it like this everywhere: > > $GLOBALS['treeResult'] = array( > 'topics' => array(), > 'posts' => array(), > 'forums' => array(), > ); > > -Shawn After a second look, probably a better alternate would be to have applyForumChildrenTree() return the array, then use $treeResult = applyForumChildrenTree( $id ); -Shawn -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php