Re: [PHP] Class Static variables in double quoted string or heredoc

[email protected] ("Nathan Nobbe")
Newsgroups php.general
Message-ID <[email protected]>
On Fri, Apr 25, 2008 at 10:02 AM, Jason Pruim <[email protected]> wrote:

>
> On Apr 25, 2008, at 11:56 AM, Nathan Nobbe wrote:
>
>  On Fri, Apr 25, 2008 at 9:50 AM, Leurent Francois <[email protected]>
>> 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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.