1. 程式人生 > >PHP之static靜態變數詳解(二)

PHP之static靜態變數詳解(二)

在看別人專案過程中,看到函式裡面很多static修飾的變數,關於static修飾的變數,作用域,用法越看越困惑,所以查了下資料。

static用法如下:

1.static 放在函式內部修飾變數

2.static放在類裡修飾屬性,或方法

3.static放在類的方法裡修飾變數

4.static修飾在全域性作用域的變數

所表示的不同含義如下:

1.在函式執行完後,變數值仍然儲存

如下所示:

1 2 3 4 5 6 7 8 9 10 <?php
function testStatic() { static $val = 1; echo $val; $val++; } testStatic();   //output 1 testStatic();   //output 2 testStatic();   //output 3 ?>

2.修飾屬性或方法,可以通過類名訪問,如果是修飾的是類的屬性,保留值

如下所示:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 <?php class Person { static $id = 0; function __construct() { self::$id++; } static function getId() {

相關推薦

PHPstatic靜態變數

在看別人專案過程中,看到函式裡面很多static修飾的變數,關於static修飾的變數,作用域,用法越看越困惑,所以查了下資料。 static用法如下: 1.static 放在函式內部修飾變數 2.static放在類裡修飾屬性,或方法 3.st

php static靜態變數

什麼是static靜態變數?(以下為在C語言中的理解) 靜態變數 型別說明符是static。 靜態變數屬於靜態儲存方式,其儲存空間為記憶體中的靜態資料區(在靜態儲存區內分配儲存單元),該 區域中的資料在整個程式的執行期間一直佔用這些儲存空間(在程式整個執行期間都不釋放),也可以認為是其記憶體地址不變,直到

Windows滲透利器Pentest BOX使用

內存 標簽 配置 ram 添加 概覽 測試環境 功能 ruby 內容概覽: 知識科普 優缺點總結 功能參數詳解翻譯: 控制臺參

安卓專案實戰強大的網路請求框架okGo使用:深入理解Callback自定義JsonCallback

前言 JSON是一種取代XML的資料結構,和xml相比,它更小巧但描述能力卻不差,由於它的小巧所以網路傳輸資料將減少更多流量從而加快了傳輸速度,目前客戶端伺服器返回的資料大多都是基於這種格式的,相應的我們瞭解的關於json的解析工具主要有兩個:Gson(Google官方出的)和fas

【SpringBoot學習路】06.Springboot配置檔案

轉載宣告:商業轉載請聯絡作者獲得授權,非商業轉載請註明出處.原文來自 © 呆萌鍾 【SpringBoot學習之路】06.Springboot配置檔案詳解(二) 配置檔案值注入 @Value獲取值和@ConfigurationProperties獲取值比較

OpenCV參考手冊Mat類

譯文參考The OpenCV Reference Manual (Release 2.3)August 17 2011 Mat::~Mat Mat的解構函式。 C++: Mat::~Mat() 解構函式呼叫Mat::release()。 Mat::operato

Collection類

Collection類之詳解(二) 六、List集合 1.概述 有序的 collection(也稱為序列)。此介面的使用者可以對列表中每個元素的插入位置進行精確地控制。使用者可以根據元素的整數索引(在列表中的位置)訪問元素,並搜尋列表中的元素。 List 介面提供了 4 種對列表元素

Java程式設計師從笨鳥到菜鳥一百零一sql注入攻擊sql注入過程

l 猜解資料庫中使用者名錶的名稱猜解法:此方法就是根據個人的經驗猜表名,一般來說,user,users,member,members,userlist,memberlist,userinfo,manager,admin,adminuser,systemuser,systemusers,sysuser,sysu

ROS入門基礎功能

前言:本部分主要介紹ros一些基礎功能的使用,包括建立和編譯工作空間,建立和編譯功能包,建立和編譯節點,建立和編譯訊息,建立和編譯服務以及建立launch檔案。 一、建立和編譯工作空間 1.檢視正在使用的工作空間: echo $ROS_PACKAGE_PATH -------------

如何開發優秀的HTML5遊戲?-迪斯尼《尋找奧茲路》遊戲技術

        (接上文)桌面遊戲通常創建於一個核心的物理引擎。因此,要在3D世界中模擬一個柔軟的物體,需要一個完整的物理模擬器,並且建立一種可信的行為。        WebGL和JavaScript還不能奢華到可以執行一個完全成熟的物理模擬器。因此,在這個遊戲中我們必須找

JAVAWEB開發Hibernate——Hibernate的持久化類狀態與轉換、以及一級快取、關聯關係的對映一對多、多對多、級聯

package cn.test.hibernate3.demo2; import org.hibernate.Session; import org.hibernate.Transaction; import org.junit.Test; import cn.test.hibernate3.demo2.

ElasticSearch6.X版本Java Api中文Index Api解析

Inde API允許將型別化JSON文件索引到特定索引中,並使其可搜尋。生成JSON文件有幾種不同的方法:1.手動(也就是自己使用)使用本機位元組[]或作為字串。2.使用將自動轉換為其JSON等效的對映

實現螢幕切換、滑動-ViewPager--------PagerTitleStrip與PagerTabStrip新增標題欄

PagerTabStrip 1.PagerTabStrip概述:(API解釋) PagerTabStrip是ViewPager的一個關於當前頁面、上一個頁面和下一個頁面的一個非互動的指示器。它經常作為ViewPager控制元件的一個子控制元件被被新增

c/c++預處理過程條件編譯及預定義的巨集

未經博主同意不得私自轉載!不準各種形式的貼上複製本文及盜圖! 首先對於上篇文章中巨集定義的補充: (1)#define NAME"zhangyuncong" 程式中有"NAME"則,它會不會被替換呢? (2)#define 0x abcd 可以嗎?也就是說,可不可以用不是

C++函式物件/偽函式Function Object

       除了自定義的函式物件,標準庫還為我們提供了一系列現成的函式物件, 比如常見的數學、邏輯運算等。例如:negate<type>(),plus<type>(),minus<type>(),multiplies<type&g

Android內容提供器Content Provider

上一篇 Android之內容提供器Content Provider詳解(一)講解了Content Provider之訪問其他程式中的資料,本篇繼續講解創如何建自己的內容提供器 本博文是《第一行程式碼 Android》的讀書筆記/摘錄。 三、建立自己的內容提供

LigerUiGrid使用——資料編輯(計算每列之和之類的)

qdjianghao2015-2-3 16:13:05閱讀(1064)評論(0) 一、問題概述   在開發web資訊管理系統時,使用Web前端框架可以幫助我們快速搭建一組風格統一的介面效果,而且能夠解決大多數瀏覽器相容問題,提升開發效率。所以上一篇文章為大家介紹了

安裝Jdk、Maven、Tomcat與配置環境變數Win10

前言 本文針對於WIN10下JDK,Maven,Tomcat等常用開發工具的下載配置步驟作出詳解。Win7,Win8步驟類似。對於這些常用開發工具建議建立一個資料夾統一維護 由於,Maven,Tomcat等工具都是依賴與JDK,所以首先要安裝好JDK。話不多說

pythonpsutil模塊Linux--小白博客

terminal 程序 date dir task ipython sin 利用 eth 1.簡單介紹 psutil是一個跨平臺的庫(http://code.google.com/p/psutil/),能夠輕松的實現獲取系統運行的進程和系統利用率(CPU、內存、磁盤、網絡等

MySQLSQL優化

目錄 MySQL之SQL優化詳解(二) 1. SQL的執行順序 1.1 手寫順序 1.2 機讀順序 2. 七種join 3. 索引 3.1 索