rfc:useas

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
rfc:useas [2012/04/12 14:58] – created laruencerfc:useas [2017/09/22 13:28] (current) – external edit 127.0.0.1
Line 2: Line 2:
   * Version: 1.0   * Version: 1.0
   * Date: 2012/04/12   * Date: 2012/04/12
-  * Author: Xinchen Hui <laruence@php.net) +  * Author: Xinchen Hui <laruence@php.net> 
-  * Status: Under Discussion+  * Status: Withdrawn
   * First Published at: http://wiki.php.net/rfc/useas   * First Published at: http://wiki.php.net/rfc/useas
  
Line 10: Line 10:
 Allow use AS in the closure declaration, like: Allow use AS in the closure declaration, like:
  
-<code role="php">+<code>
 <?php <?php
   $foo = "bar";   $foo = "bar";
      
-  $func = function () ues ($foo as $dup, &$foo as $ref) { //alias name+  $func = function () use ($foo as $dup, &$foo as $ref) { //alias name
   };   };
      
Line 21: Line 21:
 ===== Proposal ===== ===== Proposal =====
  
-I have made a patch,  but for nowit doesn't support alias $this, like+I have made a patch, after patch the following script: 
-<code role="php">+ 
 +<code>
 <?php <?php
 +
 +$a = "2";
 +
 +$b = function() use (&$a as $b, $a as $c, $a as $e) {
 +    echo $b;
 +    echo $c;
 +    echo $e;
 +    $b = 4;
 +};
 +
 +$b();
 +
 +echo $a;
  
 class Foo { class Foo {
-   public function bar() { +    public function closure() { 
-      return function() use ($this as $obj) //Error +        return function () use ($this as $obj) { 
-      {}; +            var_dump($obj); 
-   }+        }; 
 +    }
 } }
 +
 +$foo = new Foo();
 +
 +$a = $foo->closure();
 +$a();
 </code> </code>
  
-==== Patch ====+ will output: 
 +<code> 
 +2224object(Foo)#2 (0) { 
 +
 +</code> 
  
- * https://gist.github.com/2367913+I will be keeping improve this patch.
  
-===== Changelog ===== +===== Patch =====
- * 2012-04-12 Xinchen Hui Initial version+
  
 +   * https://gist.github.com/2367913
 +
 +===== Changelog =====
 +   * 2012-04-12 Xinchen Hui Initial version
 +   * 2012-07-18 Xinchen Hui Open voting 
 +   * 2012-07-19 Xinchen Hui Draw back, add dynamic variable supporting
rfc/useas.1334242690.txt.gz · Last modified: 2017/09/22 13:28 (external edit)