Как передать переменные вне области видимости анонимной функции

#php #anonymous-function #scoping

#php #anonymous-функция #определение области видимости

Вопрос:

Я новичок в PHP.

Я хочу создать ссылку на эту функцию.

 public static function cat_post($category, $limit, $top)
{
    $posts = Post::whereHas('categories', function($q)
        {
            $q->where('name', 'like', $name);
            $q->where('top', 'like', $top);

        })->take($limit)->get();
}
 

Но я получил

 Undefined variable "name"
 

Пожалуйста, помогите мне. Как создать эту функцию….

Ответ №1:

используйте, как показано ниже:

 public static function cat_post($category, $limit, $top)
{
    $posts = Post::whereHas('categories', function($q) use ($name, $top)
        {
            $q->where('name', 'like', $name);
            $q->where('top', 'like', $top);

        })->take($limit)->get();
}
 

посмотрите здесь