Re: Execution order of PHP

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

 





2010.03.10. 14:41 keltezéssel, Bob McConnell írta:
From: Auke van Slooten

In a hobby project I'm relying on the order in which the following
piece
of PHP code is executed:

$client->system->multiCall(
    $client->methodOne(),
    $client->methodTwo()
);

Currently PHP always resolves $client->system (and executes the __get
on
$client) before resolving the arguments to the multiCall() method
call.
Is this order something that is specified by PHP and so can be relied
upon to stay the same in the future or is it just how it currently
works.
If it cannot be relied upon to stay this way, I will have to rewrite
the
multiCall method and API...
Think about it from the parser's point of view. It has to evaluate
$client->system to determine the parameter list for multiCall(). Then it
has to evaluate those parameters before it can stuff their values into
the stack so it can call the function. But, whether it evaluates the
parameter list left-to-right or vice versa is implementation dependent.
I don't believe you can rely on it always being the same unless you
always use the same interpreter.

Bob McConnell

I think it cannot be that the evaluation order of the parameters is implementation dependent.
Just think about it:
  $someobject->method($a++, $a++);

What will be the result? Or there has to be some directive to tell the parser to evaluate the parameters from left to right or vice versa.
And if there isn't, in some future release, there has to be.

SanTa

<<attachment: smime.p7s>>


[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