Re: function I created doesn't work

From: Date: Fri, 04 Jan 2008 17:52:33 +0000
Subject: Re: function I created doesn't work
References: 1 2 3 4  Groups: php.general 
Request: Send a blank email to php-general+get-266635@lists.php.net to get a copy of this message
Daniel Brown wrote: > On Jan 4, 2008 12:28 PM, afan pasalic <afan@afan.net> wrote: >> Daniel Brown wrote: >>> On Jan 4, 2008 12:06 PM, afan pasalic <afan@afan.net> wrote: >>>> hi >>>> I have function >>>> function get_content($client_id, $form_id, $index1) >>>> { >>>> $query = mysql_query(" >>>> SELECT content >>>> FROM infos >>>> WHERE client_id=".$client_id." AND >>>> form_id=".$form_id." AND >>>> index1='".$index1."'"); >>>> if (mysql_num_rows($query) > 0) >>>> { >>>> $result = mysql_fetch_assoc($query); >>>> return $result['content']; >>>> } >>>> else >>>> { >>>> get_content(0, 0, $index1); // get default value >>>> } >>>> } >>>> >>>> When I call it >>>> $CONTENT = get_content(12, 104, 'merchant'); >>>> echo $CONTENT; // empty, nothing >>>> >>>> But if I use global in the function >>>> >>>> function get_content($client_id, $form_id, $index1) >>>> { >>>> global $CONTENT; >>>> $query = mysql_query(" >>>> SELECT content >>>> FROM infos >>>> WHERE client_id=".$client_id." AND >>>> form_id=".$form_id." AND >>>> index1='".$index1."'"); >>>> if (mysql_num_rows($query) > 0) >>>> { >>>> $result = mysql_fetch_assoc($query); >>>> $CONTENT = $result['content']; >>>> } >>>> else >>>> { >>>> get_content(0, 0, $index1); >>>> } >>>> } >>>> >>>> >>>> get_content(12, 104, 'merchant'); >>>> echo $CONTENT; # Shows correct. >>>> >>>> What's wrong with first solution? >>>> >>>> Thanks for any help. >>> Functions only use variables within their own scope, unless >>> explicitly told to consider a variable as a global (or if the variable >>> is a SUPERGLOBAL). >>> >> not quite sure I understand?!? >> :( >> >> > > The fundamentals of PHP (and general programming): working with globals. > > Specifically for PHP, some required reading: > > http://us.php.net/global > > I think you didn't understand my question: I know why the function work in 2nd example. My question was why I'm not getting the result in 1st example? What am I doing wrong. And, as far as I know, I think it doesn't have anything with GLOBALS (register_globals are anyway turned off). thanks -afan

« previous php.general (#266635) next »