Re: Re: PATCH: anonymous functions in PHP
| From: | Gwynne | Date: | Mon, 19 Mar 2007 02:13:28 +0000 |
| Subject: | Re: Re: PATCH: anonymous functions in PHP | ||
| References: | 1 2 3 4 5 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-28407@lists.php.net to get a copy of this message | ||
On Mar 18, 2007, at 9:30 PM, Wez Furlong wrote:
Your nitpicking happens to be wrong ;-) sizeof("string constant") is the "same" as strlen("string constant")+1, but is resolved at compile time, so we use sizeof("string constant")-1 to get a compile time evaluated strlen(). This trick is used throughout the PHP internals.Ah. I've never seen it used that way before; I apologize for my ignorance :). In my experience, sizeof() on a character constant would evaluate as sizeof( const char * const ).
On Mar 18, 2007, at 9:27 PM, Gwynne wrote:-- Gwynne, Daughter of the Code "This whole world is an asylum for the incurable."op2.u.constant.value.str.val, "__zend_anon_", sizeofUpdated patch at http://pastebin.ca/400952 Not 100% sure if my hack in zend_compile.c is righteous, but it doesn't seem too far wrong.74. + if (!memcmp(opline-("__zend_anon_")-1)) { Pardon my nitpicking, but shouldn't this be:op2.u.constant.value.str.val, "__zend_anon_", strlen74. + if (!memcmp(opline-("__zend_anon_")-1)) { Also, a strong +1 for this patch, I'd love to see this support in PHP.