2016-04-30 98 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'); }); 用這個意思^ 非常感謝! –

相關問題