Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:28488 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 16312 invoked by uid 1010); 20 Mar 2007 18:20:34 -0000 Delivered-To: ezmlm-scan-internals@lists.php.net Delivered-To: ezmlm-internals@lists.php.net Received: (qmail 16294 invoked from network); 20 Mar 2007 18:20:34 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 20 Mar 2007 18:20:34 -0000 Authentication-Results: pb1.pair.com smtp.mail=stas@zend.com; spf=pass; sender-id=pass Authentication-Results: pb1.pair.com header.from=stas@zend.com; sender-id=pass Received-SPF: pass (pb1.pair.com: domain zend.com designates 63.205.162.114 as permitted sender) X-PHP-List-Original-Sender: stas@zend.com X-Host-Fingerprint: 63.205.162.114 unknown Windows 2000 SP4, XP SP1 Received: from [63.205.162.114] ([63.205.162.114:50216] helo=us-ex1.zend.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id 76/92-33452-1F520064 for ; Tue, 20 Mar 2007 13:20:34 -0500 Received: from [127.0.0.1] ([192.168.16.109]) by us-ex1.zend.com with Microsoft SMTPSVC(6.0.3790.1830); Tue, 20 Mar 2007 11:20:30 -0700 Message-ID: <460025EA.5050303@zend.com> Date: Tue, 20 Mar 2007 11:20:26 -0700 Organization: Zend Technologies User-Agent: Thunderbird 2.0b2 (Windows/20070116) MIME-Version: 1.0 CC: Wez Furlong , Andi Gutmans , internals@lists.php.net, Sean Coates References: <86478A67-DCA2-4000-9EF0-DA4338E8389B@omniti.com> <45FDF031.4010508@zend.com> <45FE2312.1050506@zend.com> <45FED6D9.8030307@caedmon.net> <45FEDAE5.2010309@zend.com> <45FEE396.7040905@caedmon.net> <0757BDEA-65F5-4123-B647-060DCA84B4B0@omniti.com> <45FEEF52.1060002@zend.com> <1174336464.24632.110.camel@blobule> <45FEF9A5.4050409@zend.com> <1174338801.24632.124.camel@blobule> <45FEFDCE.7050100@zend.com> <1174339527.24632.129.camel@blobule> <45FF01FE.6070504@zend.com> <698DE66518E7CA45812BD18E807866CE185525@us-ex1.zend.net> <2b2f60dc7b3112ac164aba20fbddd29d@gravitonic.com> In-Reply-To: <2b2f60dc7b3112ac164aba20fbddd29d@gravitonic.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-OriginalArrivalTime: 20 Mar 2007 18:20:30.0994 (UTC) FILETIME=[71729720:01C76B1C] Subject: Re: [PHP-DEV] PATCH: anonymous functions in PHP From: stas@zend.com (Stanislav Malyshev) >> of the function. Again, this would be created based on the $_SCOPES >> fixup information, and again, $_SCOPES['i'] would be rewritten as >> simply $i in the op_array. >> >> So the funcs array might look like this is var_dump()'d: >> >> 0 => callable('__anon_0', array('i' => 0)), >> 1 => callable('__anon_0', array('i' => 1)), >> 2 => callable('__anon_0', array('i' => 2)) How do you know it's 'i'? Does it mean compiler should record any reference to _SCOPES? What if I do $_SCOPES[$foo] - is it that unthinkable? What if I doo $a = "_SCOPES", $$a[$foo]? Only way I see you can really do it is to explicitly declare the imported variables, otherwise you'll lose them - PHP is too dynamic for compiler to be able to statically resolve it. On a side note: why one needs callable type? What can be done with it which can't be done with string and $string()? -- Stanislav Malyshev, Zend Products Engineer stas@zend.com http://www.zend.com/