Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:28449 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 16369 invoked by uid 1010); 19 Mar 2007 21:25:25 -0000 Delivered-To: ezmlm-scan-internals@lists.php.net Delivered-To: ezmlm-internals@lists.php.net Received: (qmail 16354 invoked from network); 19 Mar 2007 21:25:25 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 19 Mar 2007 21:25:25 -0000 Authentication-Results: pb1.pair.com smtp.mail=robert@interjinn.com; spf=permerror; sender-id=unknown Authentication-Results: pb1.pair.com header.from=robert@interjinn.com; sender-id=unknown Received-SPF: error (pb1.pair.com: domain interjinn.com from 66.11.173.122 cause and error) X-PHP-List-Original-Sender: robert@interjinn.com X-Host-Fingerprint: 66.11.173.122 unknown Linux 2.5 (sometimes 2.4) (4) Received: from [66.11.173.122] ([66.11.173.122:39918] helo=blobule.interjinn.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id F7/A2-01604-4CFFEF54 for ; Mon, 19 Mar 2007 16:25:25 -0500 Received: by blobule.interjinn.com (Postfix, from userid 2000) id 379D25AD1FB; Mon, 19 Mar 2007 17:25:28 -0400 (EDT) To: Stanislav Malyshev Cc: Wez Furlong , Sean Coates , internals@lists.php.net In-Reply-To: <45FEFDCE.7050100@zend.com> 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> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: InterJinn Date: Mon, 19 Mar 2007 17:25:27 -0400 Message-ID: <1174339527.24632.129.camel@blobule> Mime-Version: 1.0 X-Mailer: Evolution 2.8.1 Subject: Re: [PHP-DEV] PATCH: anonymous functions in PHP From: robert@interjinn.com (Robert Cummings) On Mon, 2007-03-19 at 14:17 -0700, Stanislav Malyshev wrote: > > > > I guess I was primarily thinking in the context of the anonymous > > function being defined in your previous example. As such the parent > > scope is known (or at least can be expected), unless (unknown to me) > > It is known in compile-time. But functions are not called in > compile-time. And in run-time, inside usort() - which could in other > case be some kind of foo_sort() passing its second parameter to a dozen > of other functions, one of which uses it to invoke comparator function - > you can not know where the scope in which usort was called is with > regard to the scope of the executing anonymous function. And if you took > this function name and saved it in the variable - it could be that the > scope it was defined in does not exist anymore. I'm not arguing the preservation of the exact value of $rev when the anonymous function was created (as would be the case with a closure). I'm thinking of the variable being whatever is defined in the parent regardless. As in my proposal, the seek could search all the way up to the top in which case the $rev would be found if it had been defined as expected. At any rate, I guess this is diverging from the real discussion of anonymous functions :) Cheers, Rob. -- .------------------------------------------------------------. | InterJinn Application Framework - http://www.interjinn.com | :------------------------------------------------------------: | An application and templating framework for PHP. Boasting | | a powerful, scalable system for accessing system services | | such as forms, properties, sessions, and caches. InterJinn | | also provides an extremely flexible architecture for | | creating re-usable components quickly and easily. | `------------------------------------------------------------'