Doc #61857 [NEW]: Extra clarification around closures required

From: Date: Thu, 26 Apr 2012 13:22:28 +0000
Subject: Doc #61857 [NEW]: Extra clarification around closures required
Groups: php.doc.bugs 
Request: Send a blank email to doc-bugs+get-8300@lists.php.net to get a copy of this message
From: Operating system: Irrelevant PHP version: 5.3.11 Package: Documentation problem Bug Type: Documentation Problem Bug description:Extra clarification around closures required Description: ------------ --- From manual page: http://www.php.net/functions.anonymous --- The example #3 in Anonymous functions (relating to closures and scoping) is overly complex and doesn't explain what a closure is or how it would work. Perhaps something similar to the following may be more useful? Test script: --------------- <?php $external = 'world'; $anonymousfunction = function ($internal) { echo $internal . ' ' . $external . "\r\n"; } $anonymousfunction("hello"); // Will return "hello " and probably a PHP Notice that $external hasn't been set. $closurefunction = function ($internal) use ($external) { echo $internal . ' ' . $external . "\r\n"; } $closurefunction("hello"); // Will return "hello world" $closurefunctionwithpointer = function ($internal) use (&$external) { $external = $internal; } echo $external . "\r\n"; // Will return "world" $closurefunctionwithpointer("hello"); echo $external . "\r\n"; // Will return "hello" ?> Expected result: ---------------- hello PHP Notice: Undefined variable $external hello world world hello -- Edit bug report at https://bugs.php.net/bug.php?id=61857&edit=1 -- Try a snapshot (PHP 5.4): https://bugs.php.net/fix.php?id=61857&r=trysnapshot54 Try a snapshot (PHP 5.3): https://bugs.php.net/fix.php?id=61857&r=trysnapshot53 Try a snapshot (trunk): https://bugs.php.net/fix.php?id=61857&r=trysnapshottrunk Fixed in SVN: https://bugs.php.net/fix.php?id=61857&r=fixed Fixed in SVN and need be documented: https://bugs.php.net/fix.php?id=61857&r=needdocs Fixed in release: https://bugs.php.net/fix.php?id=61857&r=alreadyfixed Need backtrace: https://bugs.php.net/fix.php?id=61857&r=needtrace Need Reproduce Script: https://bugs.php.net/fix.php?id=61857&r=needscript Try newer version: https://bugs.php.net/fix.php?id=61857&r=oldversion Not developer issue: https://bugs.php.net/fix.php?id=61857&r=support Expected behavior: https://bugs.php.net/fix.php?id=61857&r=notwrong Not enough info: https://bugs.php.net/fix.php?id=61857&r=notenoughinfo Submitted twice: https://bugs.php.net/fix.php?id=61857&r=submittedtwice register_globals: https://bugs.php.net/fix.php?id=61857&r=globals PHP 4 support discontinued: https://bugs.php.net/fix.php?id=61857&r=php4 Daylight Savings: https://bugs.php.net/fix.php?id=61857&r=dst IIS Stability: https://bugs.php.net/fix.php?id=61857&r=isapi Install GNU Sed: https://bugs.php.net/fix.php?id=61857&r=gnused Floating point limitations: https://bugs.php.net/fix.php?id=61857&r=float No Zend Extensions: https://bugs.php.net/fix.php?id=61857&r=nozend MySQL Configuration Error: https://bugs.php.net/fix.php?id=61857&r=mysqlcfg

« previous php.doc.bugs (#8300) next »