PHP static局部靜態變量和全局靜態變量總結

2021-03-02 PHP自學中心


靜態局部變量的特點:

1.不會隨著函數的調用和退出而發生變化,不過,儘管該變量還繼續存在,但不能使用它。倘若再次調用定義它的函數時,它又可繼續使用,而且保存了前次被調用後留下的值

2.靜態局部變量只會初始化一次

3.靜態屬性只能被初始化為一個字符值或一個常量,不能使用表達式。即使局部靜態變量定義時沒有賦初值,系統會自動賦初值0(對數值型變量)或空字符(對字符變量);靜態變量的初始值為0。

4.當多次調用一個函數且要求在調用之間保留某些變量的值時,可考慮採用靜態局部變量。雖然用全局變量也可以達到上述目的,但全局變量有時會造成意外的副作用,因此仍以採用局部靜態變量為宜。

function test()

{

static $var = 5; //static $var = 1+1;就會報錯

$var++;

echo $var . ' ';

}

test(); //2

test(); //3

test(); //4

echo $var; //報錯:Notice: Undefined variable: var

關於靜態全局變量:

//全局變量本身就是靜態存儲方式,所有的全局變量都是靜態變量

function static_global(){

global $glo;

$glo++;

echo $glo.'<br>';

}

static_global(); //1

static_global(); //2

static_global(); //3

echo $glo . '<br>'; //3


相關焦點

  • C語言 | static靜態變量
    例87:學習C語言static定義靜態變量的用法。 解題思路:在C語言中,static 不僅可以用來修飾變量,還可以用來修飾函數,使用 static 修飾的變量,稱為靜態變量。靜態變量的存儲方式與全局變量一樣,都是靜態存儲方式。
  • 深入理解靜態變量
    所以,我們可以判定,全局變量的生命周期是從所處模塊裝載到所處模塊卸載。編譯器控制跨文件訪問:限制導出全局靜態變量主要用途就是限制導出,實現其函數和變量的私有化,編譯器通過限制導出機制來控制其跨文件訪問的。
  • Java中的static關鍵字和靜態變量、靜態方法
    作者: Java進階者 來源:Java進階學習交流一、static關鍵字使用static修飾的變量和方法分別稱為類變量(或稱靜態變量)和類方法(或稱靜態方法),沒有使用static修飾的變量和方法分別稱為實例變量和實例方法
  • php變量是什麼?php變量的數據類型、命名規則等詳細介紹
    4、php變量的聲明php變量的聲明非常簡單,由於php是弱語言,在聲明變量的時候不需要指定變量類型。而其php變量不需要聲明就可以使用,在使用的時候自動聲明。如下所示:計算變量$number1和變量$number2的和<?
  • 什麼是靜態變量?它與臨時變量有什麼區別?(深入解讀)
    我最早接觸「靜態變量」的概念是在計算機C語言的編程中,清楚的記得它需要用"static"關鍵字來聲明。靜態變量(Static Variable)其實也是一種變量(Variable),因此在介紹靜態變量(Static Variable)之前,我們先來介紹下在計算機和PLC的編程中「變量(Variable)」的概念。
  • C語言初學靜態變量的使用
    #C語言初學#在敲代碼時候在定義變量前面有時候會有static修飾,有什麼用呢?我就假假的自問自答一波,畢竟也看過書。在C語言中內存是分了五個區的代碼區,常量區,全局數據區,堆區,棧區。靜態變量就存放在全局數據區。
  • C語言中的變量存儲類型static老手都這樣用
    static int fun2(char c); //內部連結,對外不可見2) 修飾全局變量我們知道,全局變量存儲在靜態存儲區,但是它不是靜態變量,它的作用範圍從定義處到所在源文件末尾。例如,在file1.c中我們定義的整型全局變量g_a不想被其它源文件中函數使用,只需要在定義g_a時加上static關鍵字修飾。static int g_a;這樣g_a對其它源文件比如file2.c是不可見的,當然,file2.c中也可以定義一個同名的靜態全局變量,這是沒有問題的。
  • php學習之php的預定義變量的使用
    說明:就是php系統內置的提供給使用的變量,這個變量一般都是超全局變量,超全局就是沒有作用域的限制有的還可以跨頁面$GLOBALS_SERVER_GET_POST_FILES_COOKIE_SESSION_REQUEST_ENV1.
  • C語言局部變量和全局變量的區別
    2,使用全局變量程序運行時速度更快一些(因為內存不需要再分配),同樣現在也快不了多少。 3,對於局部變量的名字空間汙染,這個在不使用太多變量時是可以避免的。
  • 詳解python 局部變量與全局變量
    一旦本文將詳細分析python的全局變量與局部變量,學過php的人都知道,php裡面的全局變量是無法在function裡面去使用的,只有超全局變量才可以
  • C語言中,全局變量濫用的後果竟如此嚴重?
    它只被初始化一次,自從第一次初始化直到程序與你新內閣結束都一直存在,他和全局變量的區別在於全局變量對所有的函數都是可見的,而靜態局部變量只對定義自己的函數體始終可見。局部變量也只有局部作用域,他是自動對象,他在程序運行期間不是一直存在,而是只在函數執行期間存在,函數的一次調用結束後,變量就被撤銷,其所佔用的內存也被收回。
  • C語言全局變量存放在哪裡?
    全局變量編譯的時候就已經確定了內存地址和寬度,變量名就是內存地址的別名。如果不重新編譯(也就是不重新構建程序),全局變量的內存地址將不會改變。:全局變量保存在內存的全局區中,佔用靜態的存儲單元。說到靜態的存儲單元,這裡還要提一下全局變量分為:全局變量和靜態全局變量。全局變量的定義請看示例代碼CH07_3_4,而靜態全局變量,只是在int i = 2;前加static關鍵字。書寫形式:static int i =2;全局變量與靜態全局變量有什麼區別?
  • C++中的static關鍵字的總結
    最近在備C++的課程,所以把在備課過程中遇到的問題進行了總結和梳理,先把C++中的static關鍵字的用法做以下總結。C++的static有兩種用法:面向過程程序設計中的static和面向對象程序設計中的static。前者應用於普通變量和函數,不涉及類;後者主要說明static在類中的作用。
  • C語言中的變量詳解
    當然不僅僅是形參變量,在C中所有的量都有自己的作用域。C中的變量,按作用域可分為兩種,局部變量和全局變量。局部變量:也稱內部變量。局部變量是在函數內做定義說明的,其作用域僅限於函數內部,離開函數後再使用這種變量是非法的。
  • 說一說C語言中的變量存儲類型——「extern」
    存儲位置不同,決定了變量的生存期和作用域。從時間角度來說,C語言中變量分為靜態存儲和動態存儲兩種情況。靜態存儲指的是變量存儲在內存的靜態存儲區,程序編譯時就為其分配空間並初始化,佔有固定存儲單元直至程序結束。
  • C語言應用筆記(二):C語言static關鍵字及其使用
    static在C語言中的三大作用:一、隱藏功能,對於static修飾的函數和全局變量而言;二、保持持久性功能,對於static修飾的局部變量而言;三、由於存放在靜態區,全局和局部的static修飾的變量,默認初始化都為0。
  • C語言之 static
    先總結一下 static 的用法,然後再對每一條進行說明:定義全局靜態變量定義局部靜態變量定義靜態函數
  • Python函數中的全局變量與局部變量
    def first():    # 這個變量是函數內部定義的變量,屬於局部變量,只能在函數中使用    c = "Hello"    # 大括號{} 是format()函數的用法,格式化    print("c = {}".format(c))    # 如果局部變量定義的名稱與全局變量相同,相當於是在函數中又定義了一個新的局部變量
  • 都說變量有七八種,到底誰是 Java 的親兒子
    Java 這麼做的原因是為了防止數據和類成員被其他程序的其他部分有意或者無意的修改。所以在 Java 中,使用 靜態變量 來起到全局訪問的目的。靜態變量靜態變量又被稱為Static variables。靜態變量的定義比較簡單,靜態變量是屬於該類的變量,它是由 static 關鍵字來修飾的。
  • C 中 static 的常見作用
    1.全局靜態變量在全局變量之前加上關鍵字static,全局變量就被定義成為一個全局靜態變量。好處:定義全局靜態變量的好處:(1)不會被其他文件所訪問,修改(2)其他文件中可以使用相同名字的變量,不會發生衝突。2.局部靜態變量在局部變量之前加上關鍵字static,局部變量就被定義成為一個局部靜態變量。