第一次阅读WordPress项目中发现这种写法,觉得很有意思所以记录一下,老鸟勿笑

wordpress中wp-includes/load.php中有这样一段代码

function force_ssl_admin( $force = null ) {
    static $forced = false;

    if ( !is_null( $force ) ) {
        $old_forced = $forced;
        $forced = $force;
        return $old_forced;
    }

    return $forced;
}

字面意思是判断后台管理员是否强制开启https,其中

static $forced = false;

static在function中使用表示这个值(即$forces)在上次调用函数的时候,如果我们给静态变量赋予某个值的话下次函数调用时这个值保持不变,看个简单的例子:

function test() { 
static count=0;//初始化静态变量,所有函数共享一个静态变量count 
count++;//注意这个累加的过程,每调用一次本函数,count累加1 
echo $count . “
”; 
} 
for(i=0;i < 10; $i ++){ 
test (); 
}
/输出12345678910/