代码改变世界

php cloure闭包

2014-08-19 14:01  youxin  阅读(317)  评论(0编辑  收藏  举报

Closures 
它可以让您创建in-line 函数。许多语言已经开始有此功能了,也许您在不知道的情况下也使用过它。 
例如:

Java代码 
  1. <?php   
  2.   
  3. $myFunction = function() {   
  4.   
  5.   echo "Hello world!";   
  6.   
  7. }   
  8.   
  9. $myFunction();   
  10.   
  11. ?>  


变量类型的Closure是一个Closure类的对象,因此它也可用于类型提示和验证。 

Java代码 
  1. <?php   
  2.   
  3.   function setSomeEvent(Closure $myClosure) {   
  4.   
  5.   }   
  6.   
  7. ?>  



PHP Closures也使用‘use’关键字从命名空间引入变量。 

Java代码 
  1. <?php   
  2.   
  3.   $prefix = 'hello';   
  4.   
  5.   $myClosure = function($name) use ($prefix) {   
  6.   
  7.      echo $prefix, ' ', $name;   
  8.   
  9.   }   
  10.   
  11.   $myClosure('your mom'); // Guess the output doesn't actually makes sense, but you get the idea   
  12.   
  13. ?>  



这个是request:http://wiki.php.net/rfc/closures 

文档:http://php.net/manual/zh/class.closure.php

http://php.net/manual/zh/functions.anonymous.php