2016-04-30 101 views
1

我正在使用干预PHP的图像操作。 是否可以通过像这样的变量将字体大小和颜色应用于文本? 我算$字体大小和颜色$上面这一点,但它说未定义的变量如何在php中使用闭包函数中的变量?

$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

您需要使用下面的语法来传递变量:
在这里,你需要使用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'); 
}); 

EDIT

$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'; 
    }); 
+0

谢谢你的回答! 我应该在这个右边定义$字体? 你也可以请解释我应该如何定义$字体? –

+0

我已经编辑答案@AnithaIyer – Ali

+0

了解:D $ img-> text($ string,$ item ['x'],$ top,function($ font)use($ fontsize,$ color){ $ font-> file('assets/fonts/Roboto-Medium.ttf'); $ font-> size($ fontsize); $ font-> color($ color); $ font-> align('left '); $ font-> valign('top'); }); 用这个意思^ 非常感谢! –

相关问题