如何在php中的闭包函数中使用变量?

How to use variable in closure functions in php?

我正在对 php 进行干预以进行图像处理。 是否可以通过这样的变量将字体大小和颜色应用于文本? 我已经计算了上面的 $fontsize 和 $color 但它说未定义的变量

$img->text($string, $item['x'], $top, function($font) {
                        $font->file('assets/fonts/Roboto-Medium.ttf');
                        $font->size($fontsize);
                        $font->color($color);
                        $font->align('left');
                        $font->valign('top');
                    });

您需要使用以下语法来传递变量:
这里需要用到一个use()方法

$img->text($string, $item['x'], $top, function() use($font){
    $font->file('assets/fonts/Roboto-Medium.ttf');
    $font->size($fontsize);
    $font->color($color);
    $font->align('left');
    $font->valign('top');
});

编辑

此处 $font 必须是 Class object,因为它在 callback 函数中使用。如果您只想要数组,请按以下方式进行:

$font = []; // initialize array
$img->text($string, $item['x'], $top, function() use($font){
        $font['file'] = 'assets/fonts/Roboto-Medium.ttf';
        $font['size'] = $fontsize;
        $font['color'] = $color;
        $font['align'] = 'left';
        $font['valign'] = 'top';
    });