函数内的“static”关键字?

2023-11-27

我正在查看 Drupal 7 的源代码,发现了一些我以前没有见过的东西。我在 php 手册中做了一些初步的查找,但它没有解释这些示例。

关键字是什么static对函数内的变量做什么?

function module_load_all($bootstrap = FALSE) {
    static $has_run = FALSE

它使函数记住给定变量的值($has_run在您的示例中)在多个调用之间。

您可以将其用于不同的目的,例如:

function doStuff() {
  static $cache = null;

  if ($cache === null) {
     $cache = '%heavy database stuff or something%';
  }

  // code using $cache
}

在此示例中,if只会被执行一次。即使多次调用doStuff会发生。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

函数内的“static”关键字? 的相关文章

随机推荐

  • Mathematica 中的错误:正则表达式应用于很长的字符串

    在下面的代码中 如果字符串 s 附加到大约 10 或 20 000 个字符 Mathematica 内核段错误 s This is the first line MAGIC STRING Everything after this line
  • 使用内联汇编在 C 中添加值

    我试图掌握 C 中内联汇编 ATT 汇编 的基础知识 所以我通过添加 2 个变量进行练习 好的 这按预期工作 这src变量被复制到dst变量 然后是dst变量加 5 的值src and dst分别为1和6 int src 1 int dst
  • IOS 5 如何更改导航栏中后退按钮的颜色?

    I want to change the color of back button of a navigation bar to make it look like this Set the backBarButtonItem s tint
  • Javascript 中与 64 位整数的按位 AND

    我正在寻找一种在 JavaScript 中对 64 位整数执行按位 AND 的方法 JavaScript 会将其所有双精度值转换为带符号的 32 位整数以执行按位运算 详细信息在这里 Javascript 将所有数字表示为 64 位双精度
  • 在 QMake 中设置 RPATH 顺序

    我有一个 Linux Qt 程序 我希望它优先使用可执行文件目录中的 动态 Qt 库 如果存在 否则使用系统的 Qt 库 RPATH 来救援 我将此行添加到qmake的 pro 文件 QMAKE LFLAGS Wl rpath ORIGIN
  • Visual Studio 2010 无法识别 .cshtml 文件

    我最近重新安装了 Visual Studio 2010 因为这样做我不知道如何让它再次识别 cshtml 文件 我尝试安装 MVC 3 但它说它已经安装了 基本上当我打开 cshtml 文件时Visual Studio 它们没有代码高亮或智
  • DRF:如何将 django-rest-framework-jwt 集成到 Djoser

    我计划构建一个应用程序Django 休息框架 我更感兴趣的是使用Django Rest Framework JWT认证机制比Session or Token认证机制 但所有其他包都喜欢Django Rest Auth and Djoser
  • 如何获取URI的最后一个路径段

    我有一个字符串作为输入URI 如何获得最后一个路径段 在我的例子中是一个 id 这是我输入的网址 String uri http base path some segment id 我必须获得我尝试过的 id String strId ht
  • 如何在iOS中获取CSRF令牌?

    因此 我尝试将表单数据发布到我同事的网站 以便从我的 iPhone 应用程序登录 简单的用户名和密码 但是 我似乎需要 CSRF 令牌才能发帖 我对此做了很多研究 并且从中我可以从csrftoken cookie 我在这里读到 https
  • 在 Windows/Apache 上设置 Python?

    我想要一个简单的 Python hello world 网页脚本在 Windows Vista Apache 上运行 但遇到了不同的障碍 我用的是WAMP 我已经安装了mod python并且模块显示 但我不太确定我应该做什么 例如http
  • 反应式表单数组 - 推送新元素时避免验证错误

    我有一个由单个表单数组组成的表单组 ngOnInit this deviceDetailsFormGroup this formBuilder group deviceDetails this formBuilder array this
  • 如何禁用纸浆的计算日志

    我在 python 中使用 pulp 和 GUROBI 来解决一些优化问题 例如 GUROBI的计算日志是 Optimize a model with 12 rows 25 columns and 39 nonzeros Coefficie
  • 从地址字符串中提取邮政编码

    我有一些完整的地址 例如 addr1 5285 KEYES DR KALAMAZOO MI 49004 2613 addr2 PO BOX 35 COLFAX LA 71417 35 addr3 64938 MAGNOLIA LN APT
  • 如何避免 wkhtmltopdf 表格行内分页

    我正在从 html 页面生成 pdf 报告一张桌子 我在用wkhtml转pdf为目的 当pdf生成时在 tr 标记中的任意位置中断 我想避免它 2015 年 9 月 17 日更新 检查您正在使用的版本 据说 wkhtmltopdf 0 12
  • dispatchEvent 不触发 jQuery.on() 事件监听器

    我有以下触发自定义命名事件的代码 elem addEventListener click function event event preventDefault Do some processing stuff var event new
  • 警告:类加载器在 Android Studio 2.1.2 中引用了未知路径

    我是 Android 和 Android Studio 的新手 我在 Android Studio 中创建了一个 HelloWorld 项目 当我在设备上运行该应用程序时 我收到以下警告 如何修复这些警告 6 15 11 21 22 287
  • 使用scikit-learn分类为多个类别

    我正在尝试使用 scikit learn 的监督学习方法之一将文本片段分类为一个或多个类别 我尝试过的所有算法的预测函数都只返回一个匹配项 例如我有一段文字 Theaters in New York compared to those in
  • 如何将数字字符串排序为数字?

    如果你有这样的字符串 file 0 file 1 file 2 file 3 file 4 file 5 file 6 file 11 如何对它们进行排序 以便 file 11 不会出现在 file 1 之后 而是出现在 file 6 之后
  • List<> 元素是否按顺序位于堆状数组中?

    我正在学习C 基本上知道数组和数组之间的区别List最后一个是通用的 可以动态增长 但我想知道 are List元素顺序位于堆状数组中 还是每个元素 随机 位于不同位置 如果这是真的 这是否会影响内存访问和数据检索的速度 如果这是真的 这就
  • 函数内的“static”关键字?

    我正在查看 Drupal 7 的源代码 发现了一些我以前没有见过的东西 我在 php 手册中做了一些初步的查找 但它没有解释这些示例 关键字是什么static对函数内的变量做什么 function module load all boots