php 靜態方法特點,淺析php靜態方法與非靜態方法的用法區別

在php編程中,static關鍵字聲明一個屬性或方法是和類相關的,而不是和類的某個特定的實例相關,因此,這類屬性或方法也稱為“類屬性”或“類方法”

如果訪問控制權限允許,可不必創建該類對象而直接使用類名加兩個冒號“::”調用。

static關鍵字可以用來修飾變量、方法。

不經過實例化,就可以直接訪問類中static的屬性和static的方法。

static 的屬性和方法,只能訪問static的屬性和方法,不能類訪問非靜態的屬性和方法。因為靜態屬性和方法被創建時,可能還沒有任何這個類的實例可以被調用。

static的屬性,在內存中只有一份,為所有的實例共用。

使用self:: 關鍵字訪問當前類的靜態成員。

一個類的所有實例,共用類中的靜態屬性。

即在內存中即使有多個實例,靜態的屬性也只有一份。

例子,設置了一個計數器$count屬性,設置private 和 static 修飾。

這樣,外界并不能直接訪問$count屬性。而程序運行的結果也看到多個實例在使用同一個靜態的$count 屬性。

二,靜態屬性直接調用

靜態屬性不需要實例化就可以直接使用,在類還沒有創建時就可以直接使用。

使用方式:

類名:: 靜態屬性名

類沒有創建,靜態屬性就可以直接使用。那靜態屬性在什么時候在內存中被創建?

在php中沒有看到相關的資料。

引用java中的概念,來解釋應該也具有通用性。靜態屬性和方法,在類被調用時創建。

靜態方法不需要所在類被實例化就可以直接使用。

使用的方式是類名::靜態方法名

繼續寫這個math類,用來進行數學計算。

設計一個方法用來算出其中的最大值。既然是數學運算,也沒有必要去實例化這個類,如果這個方法可以拿過來就用就方便多了。

這只是為了演示static方法而設計的這個類。在php提供了 max() 函數比較數值。

靜態方法如何調用靜態方法

第一個例子,一個靜態方法調用其它靜態方法時,使用self::

靜態方法調用靜態屬性

使用self:: 調用本類的靜態屬性。

靜態方法不能調用非靜態屬性 。不能使用self::調用非靜態屬性。

也不能使用 $this 獲取非靜態屬性的值。

靜態方法調用非靜態方法

php5中,在靜態方法中不能使用 $this 標識調用非靜態方法。

當一個類中有非靜態方法被self:: 調用時,系統會自動將這個方法轉換為靜態方法。

以上這篇淺析php靜態方法與非靜態方法的用法區別就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持服務器之家。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/385861.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/385861.shtml
英文地址,請注明出處:http://en.pswp.cn/news/385861.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

java特性多態,90%的人看完都說好

01.第一份資料是圖解網絡 根據讀者閱讀偏好不同,共出了兩個版本風格的 PDF,分別是亮白版本和暗黑版本。 02.第二份資料是計算機的相關知識 看完能讓你對計算機有一個基礎的了解和入門,是培養你 內核 的基礎,我們看下目錄大綱 基…

php session 釋放,php中刪除Session和銷毀Session的方法

刪除某個session值可以使用PHP的unset函數,刪除后就會從全局變量$_SESSION中去除,無法訪問。session_start();$_SESSION[name] jobs;unset($_SESSION[name]);echo $_SESSION[name]; //提示name不存在如果要刪除所有的session,可以使用sessio…

java環境變量怎么配置,詳解系列文章

Git是什么 在回憶Git是什么的話,我們先來復習這幾個概念哈~ 什么是版本控制? 百度百科定義是醬紫的~ 版本控制是指對軟件開發過程中各種程序代碼、配置文件及說明文檔等文件變更的管理,是軟件配置管理的核心思想之一。 那些年,…

php數據接口api安全,API接口數據安全之授權碼sign

**API接口數據安全之授權碼sign**>[success] 1. ASE加密方式加密~~~class Aes{private $key null;/***param String $key 密鑰*return String*/public funciton __construct(){//配置文件中的asekey 服務端及客戶端必須保持一致 且加密key必須為16 、32、64位$this->key…

java環境變量的配置與詳解,這些知識你必須拿下

1.三重心智模型 先給大家科普一個概念,“三重心智模型”。 認知科學家斯坦諾維奇,將人的心智模式,分成了三個部分。 第一層是自主心智,自主心智是我們通過進化與內隱學習獲得。比如,我們看到蛇就會害怕,情…

centos php安裝redis擴展,Centos7編譯安裝redis、php安裝phpredis擴展

解壓 進入 make:# tar zxvf redis-4.0.9.tar.gz# cd redis-4.0.9/# make# cd src# make install為了方便管理,將Redis文件中的配置文件和常用命令移動到統一文件中:# mkdir –p /usr/local/redis/bin# mkdir –p /usr/local/redis/etc# cp /t…

java環境變量的配置步驟,實現原理分析

1.筆試常見的問題? 面試常見的問題上面給的面試題鏈接基本都有。我只提幾點: 寫SQL:寫SQL很常考察group by、內連接和外連接。手寫代碼:手寫代碼一般考單例、排序、線程、消費者生產者。我建議排序算法除了冒泡排序,…

php 方法參數傳遞,在PHP中將實例方法作為參數傳遞

我想創建一個Listener類class Listener {var $listeners array();public function add(callable $function) {$this->listeners[] $function;}public function fire() {foreach($this->listeners as $function) {call_user_func($function);}}}class Foo {public funct…

java環境安裝包出現覆蓋,請查收

正文 先問小伙伴們一個問題,登錄難嗎?“登錄有什么難得?輸入用戶名和密碼,后臺檢索出來,校驗一下不就行了。”凡是這樣回答的小伙伴,你明顯就是產品思維,登錄看似簡單,用戶名和密碼…

java生成json字符串,威力加強版

策略 1——停止挖掘 Law of Holes 是說當自己進洞就應該停止挖掘。對于單體式應用不可管理時這是最佳建議。換句話說,應該停止讓單體式應用繼續變大,也就是說當開發新功能時不應該為舊單體應用添加新代碼,最佳方法應該是將新功能開發成獨立微…

MATLAB小波軟硬閾值去噪代碼,matlab編程小波變換進行圖像去噪處理,包括各種軟硬閾值的選取函數...

內容:matlab編程小波變換進行圖像去噪處理,包括各種軟硬閾值的選取函數,%小波閾值去噪clear allclc;fimread(graylena.bmp);fdouble(f);ssize(f);rimnoise2(gaussian,s(1),s(2),0,20);%填加高斯白噪聲fnoisyfr;%對圖像進行三層小波分解[c,s]w…

java生成二維碼讀取二維碼,面試真題解析

拼多多一面 首先自我介紹 參加過哪些項目 并發編程三要素? 實現可見性的方法有哪些? 多線程的價值? 創建線程的三種方式的對比? 畫出線程的狀態流轉圖 常用的并發工具類有哪些? CyclicBarrier 和 CountDownLatch 的區…

iis 7.5 php 防止跨站,iis安全---防范XSS跨站式腳本攻擊

iis安全---防范XSS跨站式腳本攻擊網站要怎么防范常見的XSS跨站式腳本攻擊呢,我們先從XSS跨站式腳本攻擊的原理來說起。網站遭受XSS跨站式腳本攻擊的基本原理1.本地利用漏洞,這種漏洞存在于頁面中客戶端腳本自身。其攻擊過程如下所示:A給B發送…

Java春招實習面試經驗匯總,面試篇

Part1 SpringIOC 學習Spring最重要的無非是Spring IOC以及Spring AOP,首先咱們把Spring IOC吃透,以下內容將截圖展示。 Spring IOC主要學習內容分為以下7點: ①Spring框架 ②Spring lOC容器Bean對象實例化模擬實現 ③Spring IOC容器Bean對象…

Java最新大廠面試真題總結,瞬間高大上了!

什么是分布式鎖?在回答這個問題之前,我們先回答一下什么是鎖。 普通的鎖,即在單機多線程環境下,當多個線程需要訪問同一個變量或代碼片段時,被訪問的變量或代碼片段叫做臨界區域,我們需要控制線程一個一個…

php列表框怎么用,PHP+Mysql+jQuery查詢和列表框選擇操作實例講解

這篇文章主要介紹了PHPMysqljQuery查詢和列表框選擇操作實現過程,需要的朋友可以參考下本文講解如何通過ajax查詢mysql數據,并將返回的數據顯示在待選列表中,再通過選擇最終將選項加入到已選區,可以用在許多后臺管理系統中。本文列…

Java未來路在何方?圖文詳解!

Spring Security觀后感——手繪思維腦(供參考) Spring Security手繪思維腦圖 手繪的思維導圖,是我自己根據自身的情況讀完這套阿里出品的Spring Security王者晉級文檔之后所繪的,相當于是一個知識的總結與梳理,我將其分為***“核心組件”與“…

matlab怎讓3d旋轉,如何在MATLAB中平滑旋轉3D繪圖?

我會說這是你正在繪制的大量積分導致經濟放緩.一個選項是縮減采樣..也可以使用較低級別的功能進行繪制(檢查this related post以獲得plot3 / scatter3 / line性能的比較).考慮以下針對速度優化的動畫:[X Y Z] sphere(64);X X(:); Y Y(:); Z Z(:);%# set-up figu…

Java未來路在何方?挑戰大廠重燃激情!

字節跳動一面: 自我介紹,主要講講做了什么和擅長什么看你項目做Spring比較多, 問一下Spring相關的東西, IoC是什么概念?Bean的默認作用范圍是什么?其他的作用范圍?索引是什么概念有什么作用? MySQL里主要有哪些索弓|結構?哈希索弓和B樹索引比較?平常用線程主…

php如何修改文件名,php修改文件名的實現方法_后端開發

c是什么意思_后端開發C是C語言的繼承,它既可以進行C語言的過程化程序設計,又可以進行以抽象數據類型為特點的基于對象的程序設計,還可以進行以繼承和多態為特點的面向對象的程序設計。php修改文件名的實現方法在php中可以使用rename函數修改文…