首页 >数据库 >mysql教程 >使用 Laravel 的 where 子句时如何访问 PHP 闭包中的外部变量?

使用 Laravel 的 where 子句时如何访问 PHP 闭包中的外部变量?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-12-20 06:25:10993浏览

How Can I Access External Variables in PHP Closures When Using Laravel's `where` Clauses?

使用带有外部变量的 PHP 闭包

当使用 Laravel 的高级 where 子句时,有必要将外部变量传递到闭包函数中。默认语法涉及创建一个新属性并通过 $this 访问它。不过,use 关键字提供了更方便的解决方案。

通过使用 use,你可以在闭包的作用域内声明你需要的变量。例如:

DB::table('users')->where(function ($query) use ($activated) {
    $query->where('activated', '=', $activated);
})->get();

这种方法允许您直接引用闭包内的 $activated 变量。

PHP 7.4 的增强语法

在 PHP 7.4 中,箭头函数提供了匿名函数的简洁替代方案。这是使用箭头函数的示例:

DB::table('users')->where(fn($query) => $query->where('activated', '=', $activated))->get();

但是,请记住箭头函数与常规函数略有不同:

  • 它们自动从父作用域捕获变量。
  • 它们总是返回一个值,从而消除了对 return 关键字的需要。
  • 它们必须是单个表达式,没有大括号。

以上是使用 Laravel 的 where 子句时如何访问 PHP 闭包中的外部变量?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn