Re: function I created doesn't work
| From: | Daniel Brown | Date: | Fri, 04 Jan 2008 18:34:31 +0000 |
| Subject: | Re: function I created doesn't work | ||
| References: | 1 2 3 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-266628@lists.php.net to get a copy of this message | ||
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
--
Daniel P. Brown
[Phone Numbers Go Here!]
[They're Hidden From View!]
If at first you don't succeed, stick to what you know best so that you
can make enough money to pay someone else to do it for you.