• 闭 包

    闭 包

    您可以在Zephir中使用闭包(也称为匿名函数);这些是PHP兼容的,可以返回给PHP代码块:

    1. namespace MyLibrary;
    2. class Functional
    3. {
    4. public function map(array! data)
    5. {
    6. return function(number) {
    7. return number * number;
    8. };
    9. }
    10. }

    它也可以直接在Zephir中执行,并作为参数传递给其他函数/方法:

    1. namespace MyLibrary;
    2. class Functional
    3. {
    4. public function map(array! data)
    5. {
    6. return data->map(function(number) {
    7. return number * number;
    8. });
    9. }
    10. }

    一个简短的语法也可以用来定义闭包:

    1. namespace MyLibrary;
    2. class Functional
    3. {
    4. public function map(array! data)
    5. {
    6. return data->map(number => number * number);
    7. }
    8. }