如何将参数传递给内部的函数

时间:2019-04-17 17:27:54

标签: php

我正在使用干预图像库来简化卡的创建。为此,我创建了一个类,在其中可以更轻松地在这些卡片上添加文本。

此方法所在的部分代码:

<?php
    use Intervention\Image\ImageManagerStatic as Image;

    class Cards Extends Image {

    private $image;

        [...]

        public function addText($text, $x, $y, $textSize, $font, $color, $align, $valign, $angle) {
                $this->image->text($text, $x, $y, function($font) {
                    $font->file($font);
                    $font->size($textSize);
                    $font->color($color);
                    $font->align($align);
                    $font->valign($valign);
                    $font->angle(0);
                });
            }
     }
?>

我的问题是,我在将addText方法的参数传递给函数($ font)时遇到麻烦。如何在PHP中做到这一点?

1 个答案:

答案 0 :(得分:2)

似乎text()的回调仅接受Font对象,因此请使用use()将它们传递给:

$this->image->text($text, $x, $y, function($font) use($textSize, $color, $align, $valign)
{
    $font->file($font);
    $font->size($textSize);
    $font->color($color);
    $font->align($align);
    $font->valign($valign);
    $font->angle(0);
});