一尘不染

函数内部的“ static”关键字?

php

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

关键字static对函数内部的变量有什么作用?

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

阅读 453

收藏
2020-05-29

共1个答案

一尘不染

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

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

function doStuff() {
  static $cache = null;

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

  // code using $cache
}

在此示例中,if只能执行一次。即使doStuff会发生多次呼叫。

2020-05-29