> Am 19.09.2013 um 11:10 schrieb "Leigh" <lei...@gmail.com>:
> 
> On 19 September 2013 03:20, William Bartlett
> <william.a.bartl...@gmail.com> wrote:
>> I would argue that LTR support is also inconsistent / not desired.
>> 
>> If I wrote:
>> 
>> $i = 0;
>> is_three($i = $i + 1, $i = $i + 1, $i = $i + 1);
>> 
>> I would certainly expect is_three to return false, but I would also expect
>> $i to contain three.  php doesn't normally evaluate arguments lazily, it
>> would be weird for that behavior to suddenly crop up.  users who want lazy
>> evaluation can write it the traditional way (with &&).
> 
> I think there has been some misunderstanding of my intention here
> (maybe I communicated it badly) - Originally I was pretty confused
> when reading Bobs response as it was way beyond the scope of what I
> was proposing.
> 
> When I say parameters evaluated LTR / boolean short-curcuit evaluation
> I mean it like this:
> 
> $i = 1;
> $f = 1.1;
> 
> is_int($i, $f, $i, $i) => is_int(1) && is_int(1.1) && is_int(1) && is_int(1)
> 
> is_int($i++, $f++, $i++, $i++) =>  is_int(1) && is_int(1.1) &&
> is_int(2) && is_int(3)
> 
> $i == 4;
> $f == 2.1;
> 
> Internally, processing will stop at the is_int(1.1) and not bother
> continuing to check the types of further arguments.
> 
> I did not mean:
> 
> is_int($i++, $f++, $i++, $i++) => is_int($i++) && is_int($f++) &&
> is_int($i++) && is_int($i++)
> 
> As Bob said, this would take some pretty nuts opcode processing, and
> is completely not worth the effort involved. I may have emphasised a
> parallel with isset() a bit too much, however isset() cannot take
> expressions as input.
> 
> I was never intending to try and evaluate parameters as they were
> passed and jump over subsequent evaluations. Standard function call
> semantics would still apply. I hope that people find that less
> confusing / unexpected.

Well, then I misunderstood what you meant.

Then the idea is acceptable. Not sure if we need this as it is very easily 
possible with an one-liner in userspace code.

I'm +- 0 on this.

Bob Weinand
--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to