<?xml version="1.0" encoding="utf-8"?>
<!-- generator="FeedCreator 1.7.2-ppt DokuWiki" -->
<?xml-stylesheet href="http://wiki.php.net/lib/exe/css.php?s=feed" type="text/css"?>
<rdf:RDF
    xmlns="http://purl.org/rss/1.0/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel rdf:about="http://wiki.php.net/feed.php">
        <title>PHP Wiki rfc:closures</title>
        <description></description>
        <link>http://wiki.php.net/</link>
        <image rdf:resource="http://wiki.php.net/lib/images/favicon.ico" />
       <dc:date>2009-11-25T05:59:51+00:00</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="http://wiki.php.net/rfc/closures/object-extension?rev=1258398662&amp;do=diff"/>
                <rdf:li rdf:resource="http://wiki.php.net/rfc/closures/removal-of-this?rev=1233010338&amp;do=diff"/>
            </rdf:Seq>
        </items>
    </channel>
    <image rdf:about="http://wiki.php.net/lib/images/favicon.ico">
        <title>PHP Wiki</title>
        <link>http://wiki.php.net/</link>
        <url>http://wiki.php.net/lib/images/favicon.ico</url>
    </image>
    <item rdf:about="http://wiki.php.net/rfc/closures/object-extension?rev=1258398662&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2009-11-16T19:11:02+00:00</dc:date>
        <title>rfc:closures:object-extension</title>
        <link>http://wiki.php.net/rfc/closures/object-extension?rev=1258398662&amp;do=diff</link>
        <description>&lt;table&gt;&lt;tr&gt;&lt;th colspan=&quot;2&quot; width=&quot;50%&quot;&gt;1232633259&lt;/th&gt;&lt;th colspan=&quot;2&quot; width=&quot;50%&quot;&gt;current&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class=&quot;diff-blockheader&quot; colspan=&quot;2&quot;&gt;Line 1:&lt;/td&gt;
&lt;td class=&quot;diff-blockheader&quot; colspan=&quot;2&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; &lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;====== Closures: Object extension ======&lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;====== Closures: Object extension ======&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; &lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;-&lt;/td&gt;&lt;td class=&quot;diff-deletedline&quot;&gt;&lt;strong&gt;Recently, efforts &lt;/strong&gt;were made to go beyond the scope of the original Closures proposal ([[rfc/closures]]) in order to allow the extension of objects dynamically, take the following example code:&lt;/td&gt;&lt;td&gt;+&lt;/td&gt;&lt;td class=&quot;diff-addedline&quot;&gt;&lt;strong&gt;Efforts &lt;/strong&gt;were made to go beyond the scope of the original Closures proposal ([[rfc/closures]]) in order to allow the extension of objects dynamically, take the following example code:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; &lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; &lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&amp;lt;code php&amp;gt;&lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&amp;lt;code php&amp;gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-blockheader&quot; colspan=&quot;2&quot;&gt;Line 41:&lt;/td&gt;
&lt;td class=&quot;diff-blockheader&quot; colspan=&quot;2&quot;&gt;Line 41:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; &lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; &lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;Please: Before reading, keep in mind that the definition of &amp;quot;closure&amp;quot; is simply an object then saves the scope that there is at creation time. Since closures come from functional programming (i.e. lambda calculus), the way closures and OOP interact is up to the programming language that combines both. Different programming languages that implement both have different approaches to this topic that are tailored to the specific language.&lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;Please: Before reading, keep in mind that the definition of &amp;quot;closure&amp;quot; is simply an object then saves the scope that there is at creation time. Since closures come from functional programming (i.e. lambda calculus), the way closures and OOP interact is up to the programming language that combines both. Different programming languages that implement both have different approaches to this topic that are tailored to the specific language.&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td&gt;+&lt;/td&gt;&lt;td class=&quot;diff-addedline&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td&gt;+&lt;/td&gt;&lt;td class=&quot;diff-addedline&quot;&gt;===== History =====&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td&gt;+&lt;/td&gt;&lt;td class=&quot;diff-addedline&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td&gt;+&lt;/td&gt;&lt;td class=&quot;diff-addedline&quot;&gt;For PHP 5.3 $this support for Closures was removed because no consensus could be reached how to implement it in a sane fashion. This RFC describes the possible roads that can be taken to implement it in PHP 6.&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; &lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; &lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;===== Approaches to $this binding =====&lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;===== Approaches to $this binding =====&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td&gt;+&lt;/td&gt;&lt;td class=&quot;diff-addedline&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td&gt;+&lt;/td&gt;&lt;td class=&quot;diff-addedline&quot;&gt;==== (0) Proposal: Keep as-is, no $this support in closures ====&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td&gt;+&lt;/td&gt;&lt;td class=&quot;diff-addedline&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td&gt;+&lt;/td&gt;&lt;td class=&quot;diff-addedline&quot;&gt;In PHP 5.3 $this is not supported in closures - the simplest solution is to ensure HEAD (PHP 6.0) exhibits the same behaviour as 5.3 and make lamdas/closures a purely functional and non-OOP tool.&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; &lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; &lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;==== (A) Original proposal: Bind $this to the object scope at creation (if existing) ====&lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;==== (A) Original proposal: Bind $this to the object scope at creation (if existing) ====&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-blockheader&quot; colspan=&quot;2&quot;&gt;Line 136:&lt;/td&gt;
&lt;td class=&quot;diff-blockheader&quot; colspan=&quot;2&quot;&gt;Line 144:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; &lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&amp;nbsp; | 0 | 1 | 2 | 3 | 4 | 5 | 6&lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&amp;nbsp; | 0 | 1 | 2 | 3 | 4 | 5 | 6&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; &lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;==+===+===+===+===+===+===+===&lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;==+===+===+===+===+===+===+===&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td&gt;+&lt;/td&gt;&lt;td class=&quot;diff-addedline&quot;&gt;0 | # | # | - | # | - | # | #&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td&gt;+&lt;/td&gt;&lt;td class=&quot;diff-addedline&quot;&gt;--+---+---+---+---+---+---+---&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; &lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;A | 1 | 1 | - | 1 | - | 1 | 1&lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;A | 1 | 1 | - | 1 | - | 1 | 1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; &lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;--+---+---+---+---+---+---+---&lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;--+---+---+---+---+---+---+---&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-blockheader&quot; colspan=&quot;2&quot;&gt;Line 272:&lt;/td&gt;
&lt;td class=&quot;diff-blockheader&quot; colspan=&quot;2&quot;&gt;Line 282:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; &lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&amp;nbsp;  - Try to find a property in the property table with the name and if it is a closure, call the closure.&lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&amp;nbsp;  - Try to find a property in the property table with the name and if it is a closure, call the closure.&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; &lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&amp;nbsp;  - Use __call&lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&amp;nbsp;  - Use __call&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;-&lt;/td&gt;&lt;td class=&quot;diff-deletedline&quot;&gt;&amp;nbsp;  - &lt;strong&gt;No &lt;/strong&gt;not use __get&lt;/td&gt;&lt;td&gt;+&lt;/td&gt;&lt;td class=&quot;diff-addedline&quot;&gt;&amp;nbsp;  - &lt;strong&gt;Do &lt;/strong&gt;not use __get&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; &lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; &lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;**NOTE** This appears to be the conensus on this issue as far as I can see on-list. If this should be not the case, please correct this section.&lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;**NOTE** This appears to be the conensus on this issue as far as I can see on-list. If this should be not the case, please correct this section.&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-blockheader&quot; colspan=&quot;2&quot;&gt;Line 336:&lt;/td&gt;
&lt;td class=&quot;diff-blockheader&quot; colspan=&quot;2&quot;&gt;Line 346:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; &lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&amp;nbsp; - Always use the class scope of the object that bindTo() is called for&lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&amp;nbsp; - Always use the class scope of the object that bindTo() is called for&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; &lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&amp;nbsp; - Always use the class scope of the function that calls bindTo()&lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&amp;nbsp; - Always use the class scope of the function that calls bindTo()&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td&gt;+&lt;/td&gt;&lt;td class=&quot;diff-addedline&quot;&gt;&amp;nbsp; - Add a parameter to bindTo() to specify this.&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td&gt;+&lt;/td&gt;&lt;td class=&quot;diff-addedline&quot;&gt;&amp;nbsp; - Add some syntax to the closure definition to specify this.&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td&gt;+&lt;/td&gt;&lt;td class=&quot;diff-addedline&quot;&gt;&amp;nbsp; - Always use a dummy class scope so only public properties are accessible.&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; &lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; &lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;This is still to be discussed.&lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;This is still to be discussed.&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-blockheader&quot; colspan=&quot;2&quot;&gt;Line 348:&lt;/td&gt;
&lt;td class=&quot;diff-blockheader&quot; colspan=&quot;2&quot;&gt;Line 361:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; &lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; &lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;This may still be subject to discussion.&lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;This may still be subject to discussion.&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;-&lt;/td&gt;&lt;td class=&quot;diff-deletedline&quot;&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;-&lt;/td&gt;&lt;td class=&quot;diff-deletedline&quot;&gt;==== Important: Timeline ====&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;-&lt;/td&gt;&lt;td class=&quot;diff-deletedline&quot;&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;-&lt;/td&gt;&lt;td class=&quot;diff-deletedline&quot;&gt;In order to be able to proceed to PHP 5.3 beta 1 quickly, I suggest the following timeline:&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;-&lt;/td&gt;&lt;td class=&quot;diff-deletedline&quot;&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;-&lt;/td&gt;&lt;td class=&quot;diff-deletedline&quot;&gt;&amp;nbsp; - For beta1, we make sure that proposal A (no closure-property-calling, no rebinding) is in CVS.&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;-&lt;/td&gt;&lt;td class=&quot;diff-deletedline&quot;&gt;&amp;nbsp; - post-beta1, we add those features to PHP after the details that are not entirely clear are discussed. If the discussion takes too long, we don't include that feature in PHP 5.3 but instead we wait for the next version (5.3.1 or 5.4 or 6.0 or whatever)&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;-&lt;/td&gt;&lt;td class=&quot;diff-deletedline&quot;&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;-&lt;/td&gt;&lt;td class=&quot;diff-deletedline&quot;&gt;Important observation: If we have closure-property-calling but we DO NOT have rebinding, then this will certainly cause confusion among users coming from Javascript. Thus we should consider them a unit and only add them both or none at all.&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;-&lt;/td&gt;&lt;td class=&quot;diff-deletedline&quot;&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;-&lt;/td&gt;&lt;td class=&quot;diff-deletedline&quot;&gt;===== Alternative, if no consensus can be reached =====&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;-&lt;/td&gt;&lt;td class=&quot;diff-deletedline&quot;&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;-&lt;/td&gt;&lt;td class=&quot;diff-deletedline&quot;&gt;If no consensus regarding this can be reached, we could revert closures to be non-OOP-aware objects, i.e. that $this is **never** available inside closures. This would be a major step back in my eyes, but it would at least leave it open for discussion how to actually implement $this without breaking BC while being able to release PHP 5.3 without that support.&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; &lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</description>
    </item>
    <item rdf:about="http://wiki.php.net/rfc/closures/removal-of-this?rev=1233010338&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2009-01-26T22:52:18+00:00</dc:date>
        <title>rfc:closures:removal-of-this</title>
        <link>http://wiki.php.net/rfc/closures/removal-of-this?rev=1233010338&amp;do=diff</link>
        <description>&lt;table&gt;&lt;tr&gt;&lt;th colspan=&quot;2&quot; width=&quot;50%&quot;&gt;1233008754&lt;/th&gt;&lt;th colspan=&quot;2&quot; width=&quot;50%&quot;&gt;current&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class=&quot;diff-blockheader&quot; colspan=&quot;2&quot;&gt;Line 1:&lt;/td&gt;
&lt;td class=&quot;diff-blockheader&quot; colspan=&quot;2&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; &lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;====== Removal of $this in closures ======&lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;====== Removal of $this in closures ======&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;-&lt;/td&gt;&lt;td class=&quot;diff-deletedline&quot;&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;-&lt;/td&gt;&lt;td class=&quot;diff-deletedline&quot;&gt;(NOTE THAT THIS IS NOT COMMITTED YET. THIS PAGE IS STILL WORK IN PROGRESS)&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; &lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; &lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;This document describes the changes that were done in order to remove $this support from closures for PHP 5.3 beta1. This has become necessary in order to make sure that when a consensus is found on how to add $this to closures, it will be able to integrate that without BC issues.&lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;This document describes the changes that were done in order to remove $this support from closures for PHP 5.3 beta1. This has become necessary in order to make sure that when a consensus is found on how to add $this to closures, it will be able to integrate that without BC issues.&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-blockheader&quot; colspan=&quot;2&quot;&gt;Line 65:&lt;/td&gt;
&lt;td class=&quot;diff-blockheader&quot; colspan=&quot;2&quot;&gt;Line 63:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; &lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; &lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;Thus, a ''new ReflectionFunction($closure)'' has access to the real user-defined closure details and ''new ReflectionMethod($closure, &amp;quot;_invoke&amp;quot;)'' has access to the internal auto-generated handler method.&lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;Thus, a ''new ReflectionFunction($closure)'' has access to the real user-defined closure details and ''new ReflectionMethod($closure, &amp;quot;_invoke&amp;quot;)'' has access to the internal auto-generated handler method.&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td&gt;+&lt;/td&gt;&lt;td class=&quot;diff-addedline&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td&gt;+&lt;/td&gt;&lt;td class=&quot;diff-addedline&quot;&gt;''new ReflectionMethod ($closure)'' will not work anymore. This is for consistency reasons, since if both ReflectionMethod and ReflectionFunction constructors accepted the closure directly, it would not be clear what ''new ReflectionParameter ($closure, 1)'' would do (now it is clear: use ReflectionFunction as the constructor).&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; &lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; &lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;==== isClosure ====&lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;==== isClosure ====&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</description>
    </item>
</rdf:RDF>
