[pmwiki-users] What is the correct use of slashes

Patrick R. Michaud pmichaud at pobox.com
Fri Jul 15 13:03:46 CDT 2005


On Fri, Jul 15, 2005 at 02:54:37PM +0100, K.A.Bouton wrote:
> just to make sure.
> I understand about the backslashes and special PmWiki variable $FullName
>     new PageStore("$FarmD/shared.d/\$FullName")
> uses double quotes with backslash $Special_PmWiki_variable($FullName)
> is the same as
>     new PageStore('$FarmD/shared.d/$FullName')
> uses single quote nobackslash $Special_PmWiki_variable($FullName)
> Is there any reason to use one and not the other?

Not in this instance, no.

> But I don't understand how ("$FarmD  and ('$FarmD are, or are not, the same

Well, technically they *aren't* the same, but in this instance they
work out to be the same when they're ultimately used.  With

    new PageStore("$FarmD/shared.d/\$FullName")

the substitution of $FarmD takes place as this statement is
executed, thus if your farm directory was "/home/user/farm" then
the string that gets passed to the PageStore constructor is
'/home/user/farm/shared.d/$FullName'.  But with

   new PageStore('$FarmD/shared.d/$FullName')

the substitution doesn't take place immediately -- instead, PmWiki's
FmtPageName function replaces $FarmD with its value at the same time
that it handles the $FullName substitution.  Since $FarmD's value
probably won't change in the interim, it all ends out working out
to the same thing when it comes time to read the page store.

So, in your example:

> $WikiLibDirs = array(&$WikiDir,
>     1)    new PageStore("$FarmD/wiki.d/\$FullName"),
>     2)    new PageStore("$FarmD/shared.d/\$FullName"),
>     3)    new PageStore('$FarmD/wikilib.d/$FullName'));
> 
> Shouldn't line 3) be 
>     3)   new PageStore("$FarmD/wikilib.d/\$FullName"));

either one works.  Since $FarmD's value won't change, it doesn't matter
if it gets substituted earlier or later.  However, the system
will probably run very slightly faster with the second version of #3,
since it will only have to do the substitution of $FarmD once.

Also, in general #1 should probably be omitted, unless you really
do want the farm's wiki pages in wiki.d to be displayed in every field.

Hope this helps!

Pm




More information about the pmwiki-users mailing list