Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:76535 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 35702 invoked from network); 15 Aug 2014 07:28:22 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 15 Aug 2014 07:28:22 -0000 Authentication-Results: pb1.pair.com header.from=mike.php.net@gmail.com; sender-id=pass Authentication-Results: pb1.pair.com smtp.mail=mike.php.net@gmail.com; spf=pass; sender-id=pass Received-SPF: pass (pb1.pair.com: domain gmail.com designates 74.125.82.180 as permitted sender) X-PHP-List-Original-Sender: mike.php.net@gmail.com X-Host-Fingerprint: 74.125.82.180 mail-we0-f180.google.com Received: from [74.125.82.180] ([74.125.82.180:37352] helo=mail-we0-f180.google.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id 76/42-40673-496BDE35 for ; Fri, 15 Aug 2014 03:28:21 -0400 Received: by mail-we0-f180.google.com with SMTP id w61so2029383wes.11 for ; Fri, 15 Aug 2014 00:28:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=sender:message-id:date:from:user-agent:mime-version:to:cc:subject :references:in-reply-to:content-type:content-transfer-encoding; bh=5nbjW9GlQtrJ8rJBvb+anbpGVPKovNEiSNe+9FhV+1A=; b=lR0X/gnaPvS/ccR1F+TBZJxJ5M9944nmFAr6MFUodF1FGA3u+IGiIXpKKLQsngO23G 2xVo1KnnxI2uInzANWjxZB00vGvEzMo8sopbnLIVYmjQzSPbrZmnPVW01m+8UU/QZgxL r8ZgAx8EdZR7zbU82ahWB5l35R0BtOV7gQsRkSnvPEIAS5NIlunR9dwSsqBsM2pmjbOD J90V8A0F8x5b4LhLCBc3ny2BEdr6tGlJa4vjQPNr2rL6xDuV5DGiStaiILnEzQf+G1I+ VAtvfMuxrgX5wbgASeNVYKbMPsYk9RDi5SWbFiuEqbKxiKFdLc+Oz+TUDOjUyhCfVaOt 6uJQ== X-Received: by 10.194.236.35 with SMTP id ur3mr418389wjc.127.1408087698019; Fri, 15 Aug 2014 00:28:18 -0700 (PDT) Received: from [192.168.1.120] (178-18-170-101.customer.bnet.at. [178.18.170.101]) by mx.google.com with ESMTPSA id d2sm4148171wiy.13.2014.08.15.00.28.16 for (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 15 Aug 2014 00:28:16 -0700 (PDT) Sender: Michael Wallner Message-ID: <53EDB68F.60705@php.net> Date: Fri, 15 Aug 2014 09:28:15 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.0 MIME-Version: 1.0 To: Christoph Becker , Alain Williams , Michael Wallner CC: internals@lists.php.net References: <3F1B2834-3939-4F86-86E0-207D2CE469D6@ajf.me> <20140814093338.GY11050@phcomp.co.uk> <53EC9DD3.7000404@gmx.de> In-Reply-To: <53EC9DD3.7000404@gmx.de> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit Subject: Re: [PHP-DEV] [RFC] Introduce Abstract Syntax Tree From: mike@php.net (Michael Wallner) On 14/08/14 13:30, Christoph Becker wrote: > Michael Wallner wrote: > >> On 14 08 2014, at 11:33, Alain Williams wrote: >>> Some code is just broken. >> >> Wat? No. This is totally different to two in/decrements on one line. This has to be executed in order. Ignore that. > > The current specification draft says[1]: > > | Unless stated explicitly in this specification, the order in which > | the operands in an expression are evaluated relative to each other is > | unspecified. > | [...] > | Finally, in the full expression f() + g() * h(), the order in which > | the three functions are called, is unspecified). > > [1] > > You're right, it's documented, too; in the operator section not in the expression section, though: ---8<--- PHP does not (in the general case) specify in which order an expression is evaluated and code that assumes a specific order of evaluation should be avoided, because the behavior can change between versions of PHP or depending on the surrounding code. --->8--- http://php.net/manual/en/language.operators.precedence.php -- Regards, Mike