Re: undefined vars in 'if' statements
[email protected] (Andrei Zmievski) Tue, 22 Feb 2000 08:37:10 -0600
| Newsgroups | php.template |
|---|---|
| Message-ID | <[email protected]> |
On Mon, 21 Feb 2000, Dan Libby wrote:
> Sorry for the delayed responses. been away.
>
> >
> > No, what I mean is this. Say you have:
> >
> > {{ $name default="John" }}
> > ...
> > ...
> > {{ if $name = "Bob" }}
> > ...
> > {{ /if }}
> >
> > If the $name is not assigned a value by the script, then "John" is printed
> > out as the default value. But in the 'if' statement, $name will be
> > undefined so it'll be compared as undefined. Do you see what I'm saying?
>
> Yes, I see. I think that the if statement should only operate on the value
> assigned by the code, if any. One reason is that you could have the same
> variable, $name, used in several places with different defaults for each
> place. I don't really see default acting like an assignment operator.
Ok, that sounds fine to me. If $name is not assigned a value by the
script that it's value will be undefined.
> > >Perhaps the question you are asking is whether the if statement should
> > >behave like a section with regard to autohide, and I think the answer is
> > >yes. It seems like autohide could/should be an attribute of any block
> > >type.
> >
> > You mean, just skip the 'if' statement if it's comparing a variable that's
> > not defined? I'm not sure it's such a good idea...
>
> No, I was referring to what would/should happen if a variable is referenced
> within the if section that was not defined. In that case, I think the if
> statement should have the same behavior as a regular section.
What do you mean by that?
> The if statement should in fact allow testing for whether a variable is
> defined or not.
Is {{ if $name }} enough?
-Andrei
A room without books is like a body without a soul.
-- Marcus Tullius Cicero (106-43 B.C.)