[pmwiki-users] Problem with $FmtPV;

Ben Wilson dausha at gmail.com
Tue May 22 12:05:08 CDT 2007


So, the problem is my own misunderstanding of PHP. I appreciate the insight. :-)

Regards,
Ben

On 5/22/07, Patrick R. Michaud <pmichaud at pobox.com> wrote:
> On Tue, May 22, 2007 at 11:15:33AM -0400, Ben Wilson wrote:
> > On 5/22/07, Stirling Westrup <sti at pooq.com> wrote:
> > > Ben Wilson wrote:
> > > > I am setting $FmtPV with the following value: '2007W19'; This is how I
> > > > set it, outside of any function, but in a recipe.
> > > >
> > > > $FmtPV['$YearWeek'] = '2007W19';
> > >
> > > This won't work. The contents of $FmtPV are run through eval. That
> > > means it has to be a valid PHP expression. 2007W19 isn't one.
> >
> > Thanks. But then why does it not fail otherwise?
>
> In the case where you had
>
>     $FmtPV['$YearWeek'] = 'a2007W19';
>
> when PHP evaluates "a2007W19" it sees it as a "bareword string"
> and automatically treats it as a string.  For example, in PHP I
> can write:
>
>     $x = a2007W19;
>
> PHP automaticaly treats the bareword string as though I had written:
>
>     $x = 'a2007W19';
>
> But with
>
>     $FmtPV['$YearWeek'] = '2007W19';
>     $FmtPV['$YearWeek'] = 'Test-2007W19';
>
> PHP ends up evaluating the constants as though we had written
>
>     $x = 2007W19;                  # $x = 2007 'W19';
>     $x = Test-2007W19;             # $x = 'Test' - 2007 'W19'
>
> and gets confused at the W19 part, because it sees a bareword
> string where it was expecting an operator of some sort.
>
> Pm
>


-- 
Ben Wilson
"Words are the only thing which will last forever" Churchill



More information about the pmwiki-users mailing list