1

我正在使用 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');
                    });
4

1 回答 1

5

您需要使用以下语法来传递变量:
这里您需要使用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必须是 a Class object,因为 this 在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';
    });
于 2016-04-30T06:18:10.733 回答