Re: echo VS print : that's a cool behavior !

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, 2007-10-23 at 11:54 -0400, Andrew Ballard wrote:
> On 10/23/07, Robert Cummings <robert@xxxxxxxxxxxxx> wrote:
> > On Tue, 2007-10-23 at 17:34 +0200, Julien Pauli wrote:
> > > <?php
> > > echo "coucou " . print('v ' . print('u ' . print('toctoc ') . 'hihi
> > > ') ) .
> > > 'tata ' . print('zozo ' . print('pupu '));
> >
> > That's not cool, that's a mess. Why doe sit happen the way it does?
> > First off, print() is a function so nesting functions means the
> > innermost functions get processed first, this is why the output has
> > mangled order. The 1's show up in the output because you're
> > concatenating the return value of the print() function which is true for
> > success.
> 
> Agreed it's a mess, and I don't know why anyone would do it, but
> that's only part of the story. I don't think the OP was wondering
> where the 1s came from; at least I'm not. I am wondering why it
> displays:
> 
> toctoc hihi u 1pupu zozo 1v 1tata 1coucou 1
> 
> instead of
> 
> toctoc u 1hihi v 1pupu zozo 1coucou 1tata 1

My bad, print is not a function, and so:

    print( 'toctoc ' ).'hihi ';

is equivalent to:

    print( 'tocktoc '.'hihi ' );

Parenthesis are option and only server to control precedence. But unlike
echo print does return a value.

Cheers,
Rob.
-- 
...........................................................
SwarmBuy.com - http://www.swarmbuy.com

    Leveraging the buying power of the masses!
...........................................................

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux