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