Re: Class Static variables in double quoted string or heredoc
| From: | Nathan Nobbe | Date: | Fri, 25 Apr 2008 16:14:33 +0000 |
| Subject: | Re: Class Static variables in double quoted string or heredoc | ||
| References: | 1 2 3 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-273565@lists.php.net to get a copy of this message | ||
On Fri, Apr 25, 2008 at 10:02 AM, Jason Pruim <japruim@raoset.com> wrote:
>
> On Apr 25, 2008, at 11:56 AM, Nathan Nobbe wrote:
>
> On Fri, Apr 25, 2008 at 9:50 AM, Leurent Francois <131.php@cloudyks.org>
>> wrote:
>>
>> Is there any hope that
>>> echo "Welcome {session::$user_info['user_name']}";
>>>
>>> will work someday, if not, is there a simple reason i'm missing ?
>>>
>>
>>
>> actually, if you see my post from the other day, this is something that
>> *was* supported in php-5.2.4. i dont know why its not working in 5.2.5;
>> ive
>> also checked 5.2.6_rc3 and its not working there either. i have written
>> some phpt tests and run them on a 5.2.4 install and a 5.2.6_rc3 install;
>> you
>> can find the details on a post to the php-qa list from a couple of days
>> back
>> (that i posted after a lack of interest from the php-general list :O)
>>
>> http://marc.info/?l=php-qa&m=120901795414161&w=2
>>
>
> is there a reason why that would work better then: echo "Welcome
> {$_SESSION['user_info']['user_name']}";?
>
> Just curious :)
i think the question is more along the lines of why cant static references
be embedded within double quoted strings like class instances (and
indirectly the issue i mentioned earlier this week, which affords a
workaround), as in
<?php
class Session { function blah() {} }
$s = new Session();
echo "Hi {$s->blah()} \n";
?>
whereas this doesnt work
<?php
class Session { static function blah() {} }
echo "Hi {Session::blah()} \n";
?>
the funny thing is, in php-5.2.4, you can get away w/ this
<?php
class Session { static function blah() {} }
$s = 'Session';
echo "Hi {$s::blah()} \n";
?>
-nathan