我正在查看Drupal 7的资源,发现了一些以前从未见过的东西。我在php手册中做了一些初步的了解,但没有解释这些示例。
关键字static对函数内部的变量有什么作用?
static
function module_load_all($bootstrap = FALSE) { static $has_run = FALSE
它使函数记住$has_run多次调用之间给定变量的值(在您的示例中)。
$has_run
您可以将其用于不同的目的,例如:
function doStuff() { static $cache = null; if ($cache === null) { $cache = '%heavy database stuff or something%'; } // code using $cache }
在此示例中,if只能执行一次。即使doStuff会发生多次呼叫。
if
doStuff