Re: Parsing variables within string variables
| From: | David Clough | Date: | Fri, 07 Apr 2006 21:46:14 +0000 |
| Subject: | Re: Parsing variables within string variables | ||
| References: | 1 2 3 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-233485@lists.php.net to get a copy of this message | ||
Dear Paul,
this is exactly the problem: the string including the dollar sign comes
from the database.
The problem I have is that the echo statement parses the $bar reference,
but not the $foo reference within it.
So
echo $bar
generates
Hello $foo
which is better than
$bar
but doesn't get as far as
Hello cat
What I think I need is to send the results of the first echo to a second
echo for parsing. Is there some way of doing that?
Thanks for any help...
David.
In article <6.2.3.4.2.20060407102231.0304d230@spamarrest.com>,
paul@juniperwebcraft.com (Paul Novitski) wrote:
> I wrote:
> >You need to EVALUATE the string coming from the database:
> >
> >Assuming that $sDataField contains the string 'Hello $foo':
> >
> > $foo = "cat";
> > $sText = eval($sDataField);
> >
> >RESULT: $sText = "Hello cat"
> >
> >http://php.net/eval
>
>
> I was assuming that you meant that the string "Hello $foo" --
> including the dollar sign -- came from the database.
>
> If $foo exists as a native PHP variable, I'd want to see your actual
> code to tell why it's not being properly evaluated by the parser.
>
> Sometimes you need to use curly braces to help the PHP interpreter
> differentiate a variable from the surrounding text:
>
> $bar = "Hello ${foo}amaran";
>
> If you escape the dollar sign, the variable won't be evaluated:
>
> $bar = "Hello \$foo";
> RESULT: "Hello $foo"
>
> Paul