php 獲取實例的類名,PHP類名獲取方式及單例模式實現

類名是什么意思?顧名思義就是各類起了一個名字,java中有兩種數據類型,基本數據類型和引用數據類型,這里類就是引用數據類型,我們在定義一個類的時候必須給類起一個名字,一邊后面的使用

比如:int a = 3;這里a變量名,那么同樣你在寫類的時候類名和這個變量名意義一樣,只不過類的作用很多。

獲取類名的幾種方式

1.__CLASS__:獲取當前的類名

2.get_class():返回對象的類名

3.get_called_class():后期靜態綁定(”Late Static Binding”)類的名稱,即靜態方法調用者的類名

class foo {

static public function test() {

echo "foo.__CLASS__:".__CLASS__."\n";

echo "foo.get_class:".get_class()."\n";

echo "foo.get_called_class:".get_called_class()."\n";

}

}

class bar extends foo {

}

foo::test();

echo "\n";

bar::test();

?>

結果:

//結果

foo.__CLASS__:foo

foo.get_class:foo

foo.get_called_class:foo

foo.__CLASS__:foo

foo.get_class:foo

foo.get_called_class:bar

單例模式:確保一個類只有一個實例,而且自行實例化并向整個系統提供這個實例。

//通過get_called_class實現單例模式

class Singleton{

private static $instance;

public static function getInstance() { //靜態共有方法實例化對象

$class_name = get_called_class();

if (isset(self::$instance[$class_name])) {

return self::$instance[$class_name];

}

self::$instance[$class_name] = new $class_name;

return self::$instance[$class_name];

}

}

?>

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

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

相關文章

CAP理論的理解

CAP理論作為分布式系統的基礎理論,它描述的是一個分布式系統在以下三個特性中: 一致性(Consistency)可用性(Availability)分區容錯性(Partition tolerance)最多滿足其中的兩個特性。也就是下圖所…

開啟真我新格調 期待絢麗的未知

我們每天都在朝幸福努力著,而眼光看的太遠,往往會忘記自己究竟要的是什么。人想要幸福,就得活出真我,當人不能放心大膽地活出自己時,內心會有不安和痛苦。為何要隱藏真正的自己?外界的評判真的那么重要?真我新格調&a…

vuex構建vue項目_如何使用Vue.js,Vuex,Vuetify和Firebase構建單頁應用程序

vuex構建vue項目如何使用Vuetify和Vue路由器安裝Vue并構建SPA (How to install Vue and build an SPA using Vuetify and Vue Router) Do you want to learn how to use Vue.js? Want to create a realistic website using Vue.js? In this tutorial, I will teach you how t…

vim 自動補全

1. vim編輯器自帶關鍵字補全 觸發&#xff1a; ctrl n or ctrl p 補全命令&#xff1a; <C-n> 普通關鍵字 【能夠根據buffer以及標簽文件列表等進行關鍵字補全】 <C-x><C-f> 文件名補全【像在命令行的提示信息一樣&#xff0c;提示當前工…

Linux-RHEL5-初學者配置vsftpd注意事項

我安裝的是RHEL5.4&#xff0c;初學&#xff0c;不在意版本。為了學習方便&#xff0c;安裝操作系統時能選的選項都選全了。事實證明這個決策是正確滴&#xff0c;要不還得花時間學習怎么安裝vsftp。 網上關于如何配置vsftpd的資料挺多的。 我花了小半天的時間&#xff0c;除了…

leetcode459. 重復的子字符串

給定一個非空的字符串&#xff0c;判斷它是否可以由它的一個子串重復多次構成。給定的字符串只含有小寫英文字母&#xff0c;并且長度不超過10000。 示例 1: 輸入: “abab” 輸出: True 解釋: 可由子字符串 “ab” 重復兩次構成。 代碼 class Solution {public boolean r…

解析xml的4種方法詳解

1. 介紹 1&#xff09;DOM(JAXP Crimson解析器) DOM是用與平臺和語言無關的方式表示XML文檔的官方W3C標準。DOM是以層次結構組織的節點或信息片斷的集合。這個層次結構允許開發人員在樹中尋找特定信息。分析該結構通常需要加載整個文檔和構造層次結構&#xff0c;然后才…

php mvc 高性能框架,swoolefy-基于swoole擴展實現的高性能的微服務和mvc框架

swoolefy這是一個基于swoole擴展實現的輕量級高性能的API和Web的MVC微服務框架&#xff0c;參考了TP,Yii2,Workerman&#xff0c;swoole_framework等框架的的設計思想。同時也結合了多年來的技術的積累的以及生產環境中的實踐經驗實現的功能特性1、輕量級的框架,實現路由與調度…

arcore_如何使用ARCore和Android Studio構建增強現實Android應用

arcoreby Ayusch Jain通過Ayusch Jain 如何使用ARCore和Android Studio構建增強現實Android應用 (How to build an Augmented Reality Android App with ARCore and Android Studio) This article was originally posted here本文最初發布在這里 In the previous post, I expl…

最小值的最優化問題

無約束極小值的最優化條件&#xff1a; 關于多元函數極小值點的必要條件&#xff1a; 滿足的點稱之為f(x)的駐點或穩定點&#xff0c;但是反過來&#xff0c;滿足梯度條件的點不一定是f(x)的局部極小值。因此&#xff0c;定理轉化為求解下面的方程組問題&#xff1a; 對于上面…

leetcode950. 按遞增順序顯示卡牌

牌組中的每張卡牌都對應有一個唯一的整數。你可以按你想要的順序對這套卡片進行排序。 最初&#xff0c;這些卡牌在牌組里是正面朝下的&#xff08;即&#xff0c;未顯示狀態&#xff09;。 現在&#xff0c;重復執行以下步驟&#xff0c;直到顯示所有卡牌為止&#xff1a; …

第2課 - 搭建Lua開發環境

第2課 - 搭建Lua開發環境 1. Lua 的優點 &#xff08;1&#xff09;Lua 使用標準的 ANSI C 進行開發&#xff0c;可以無縫集成到宿主程序&#xff0c;且幾乎支持所有平臺。 &#xff08;2&#xff09;Lua 是開源且免費的軟件&#xff0c;以源碼的方式直接發布。開源軟件的發布方…

關于文件系統權限的管理

關于文件系統權限的管理 眾所周知的是&#xff0c;一個操作系統&#xff0c;是需要為不同的用戶進行服務的&#xff0c;因為不能讓每個人都以管理員進行操作&#xff0c;這樣做的話&#xff0c;毫無安全性可言&#xff0c;所以我們需要驗證和授權。這就體現了權限的重要性&…

深度學習工作開展_深入開展深度工作:新經濟中的兩項核心能力

深度學習工作開展by Bar Franek由Bar Franek 深入開展深度工作&#xff1a;新經濟中的兩項核心能力 (Going Deeper on Deep Work: Two Core Abilities for Thriving in the New Economy) 愛深層工作的更多理由 (A Few More Reasons To Love Deep Work) I had no idea my first…

java獲取文件名方法,利用Java獲取文件名、類名、方法名和行號的方法小結

大家都知道&#xff0c;在C語言中&#xff0c;我們可以通過宏FILE、 __LINE__來獲取文件名和行號&#xff0c;而在Java語言中&#xff0c;則可以通過StackTraceElement類來獲取文件名、類名、方法名、行號&#xff0c;具體代碼如下&#xff1a;public static int getLineNumber…

tp5.1升級指導---控制器調整 _initialize方法更改為initialize

控制器調整 為了規范化&#xff0c;繼承了think\Controller類的話&#xff0c;初始化方法從原來的_initialize方法更改為initialize。轉載于:https://www.cnblogs.com/lsyy/p/11027416.html

leetcode537. 復數乘法

給定兩個表示復數的字符串。 返回表示它們乘積的字符串。注意&#xff0c;根據定義 i2 -1 。 示例 1: 輸入: “11i”, “11i” 輸出: “02i” 解釋: (1 i) * (1 i) 1 i2 2 * i 2i &#xff0c;你需要將它轉換為 02i 的形式。 代碼 class Solution {public String c…

初始多態

package Li;public class Person { String name;public Person() {super(); }public Person(String name) {super();this.name name; }public void eat(){System.out.println(name"正在吃面包"); } }package Li;public class Student extends Person {public Studen…

Bitmap尺度變換

1 Bitmap bitMap BitmapFactory.decodeFile(path);2 int width bitMap.getWidth();3 int height bitMap.getHeight();4 // 設置想要的大小5 int newWidth 500;6 int newHeight 400;7 // 計算縮放比例8 float scaleWidth ((float) newWidth) / width;9 float scaleHeight …

css!important_如何解決CSS特殊性問題以及何時使用!important關鍵字

css!importantby Muna Mohamed通過穆納穆罕默德(Muna Mohamed) 如何解決CSS特殊性問題以及何時使用&#xff01;important關鍵字 (How to tackle CSS specificity issues and when to use the !important keyword) 案例研究 (A Case Study) Recently, there was a Twitter pol…