Req #54243 [NEW]: Shorter syntax for closures

From: Date: Sun, 13 Mar 2011 15:09:37 +0000
Subject: Req #54243 [NEW]: Shorter syntax for closures
Groups: php.bugs 
Request: Send a blank email to php-bugs+get-159453@lists.php.net to get a copy of this message
From: Operating system: PHP version: Irrelevant Package: Scripting Engine problem Bug Type: Feature/Change Request Bug description:Shorter syntax for closures Description: ------------ Current closure syntax makes the code a little bit unreadable and also shortening the syntax of a handy thing like this seems more logical. Test script: --------------- As of now "closure" syntax is: function ($a) use($b){ return $a == $b; } Passing a closure to any other scope: $myObject = new myObject (); $myObject->MyMethod('abc', function ($a) use($b){ return $a == $b; }); Expected result: ---------------- My short syntax candidate is: $([arg1],[arg2],[arg...], {[method body]}, [scope_var1],[scope_var2],[scope_var...]) So passing with use token syntax: $myObject = new myObject (); $myObject->MyMethod('abc', $($a, {$a == $b}, $b)); Without "use" token: $myObject = new myObject (); $myObject->MyMethod('abc', $($a, {$a == $b})); With more than one method argument: $myObject = new myObject (); $myObject->MyMethod('abc', $($a,$k,$p,{$a == $b})); -- Edit bug report at http://bugs.php.net/bug.php?id=54243&edit=1 -- Try a snapshot (PHP 5.2): http://bugs.php.net/fix.php?id=54243&r=trysnapshot52 Try a snapshot (PHP 5.3): http://bugs.php.net/fix.php?id=54243&r=trysnapshot53 Try a snapshot (trunk): http://bugs.php.net/fix.php?id=54243&r=trysnapshottrunk Fixed in SVN: http://bugs.php.net/fix.php?id=54243&r=fixed Fixed in SVN and need be documented: http://bugs.php.net/fix.php?id=54243&r=needdocs Fixed in release: http://bugs.php.net/fix.php?id=54243&r=alreadyfixed Need backtrace: http://bugs.php.net/fix.php?id=54243&r=needtrace Need Reproduce Script: http://bugs.php.net/fix.php?id=54243&r=needscript Try newer version: http://bugs.php.net/fix.php?id=54243&r=oldversion Not developer issue: http://bugs.php.net/fix.php?id=54243&r=support Expected behavior: http://bugs.php.net/fix.php?id=54243&r=notwrong Not enough info: http://bugs.php.net/fix.php?id=54243&r=notenoughinfo Submitted twice: http://bugs.php.net/fix.php?id=54243&r=submittedtwice register_globals: http://bugs.php.net/fix.php?id=54243&r=globals PHP 4 support discontinued: http://bugs.php.net/fix.php?id=54243&r=php4 Daylight Savings: http://bugs.php.net/fix.php?id=54243&r=dst IIS Stability: http://bugs.php.net/fix.php?id=54243&r=isapi Install GNU Sed: http://bugs.php.net/fix.php?id=54243&r=gnused Floating point limitations: http://bugs.php.net/fix.php?id=54243&r=float No Zend Extensions: http://bugs.php.net/fix.php?id=54243&r=nozend MySQL Configuration Error: http://bugs.php.net/fix.php?id=54243&r=mysqlcfg

« previous php.bugs (#159453) next »