導航:首頁 > 編程語言 > php定義枚舉

php定義枚舉

發布時間:2023-05-18 21:43:53

1. 枚舉的屬性和方法

枚舉在Java中是一個類 ,代表著類的一一列舉。要想知道枚舉具體的使用首先要先知道它的具體的 屬性 方法 才可以。雖然說我們在實際應用中很少去關注它的屬性和方法,而是更多的關注它的 特性 ,利用它本身的特性去滿足各種有意思的場景。

 由於上篇內容講了我們自定義的枚舉其實經過編譯之後,實際繼承的是lang包下的Enum類。雖然我們自定義的枚舉類中可能存在不定義私有屬性的情況,但繼承的Enum類中自身就帶有著兩個屬性,name屬性、和ordinal屬性。Enum類的源碼

 name為我們枚舉值的名稱,而ordinal這個詞的意思是「序數」或者說「有順序的」,其實就是序數。我們知道枚舉所代表的就是包含一個以上枚舉值的集合,既然是集合它就是有順序的,而大多數我們使用的時候往往忽略了它的序數這個屬性,似乎忘了枚舉是枚舉這件事了。
 枚舉中的序號是根據我們的枚舉中顯滲或示的順序決定的,其實是是語法糖轉換時初始化枚舉值時決定了枚舉值的序數,枚舉中,第一個枚舉值的序數總是小於後面枚舉值的序數,且序數是從0開始的。

 接著上面講的序數ordinal,針對序數我們先講枚舉的values()方法。

作含殲為一個枚舉值的集合,所必須要有的操作肯定是遍歷,這也是靜態常量所沒有的支持的。values()其實就是獲取我們枚舉值的數組:

 雖然我們自定義的枚舉類是可以使用這個方法的,但繼承的Enum類卻沒有這個方法,其實values()這個方法是很特殊的一個方法,之前說過枚舉是一種語法糖,在它真正編譯後,就會產生values()這個方法,所以我們自定義的枚舉類是可以使用這個方法的,而且values()方法所返回的其實是一個淺拷貝;

 前面說到枚舉有兩個屬性,name和ordinal,但實際上枚舉只提供了根據name來獲取具體枚舉值的方法,卻沒有提供根據ordinal來獲取具體枚舉值的方法,但是values()方法也算是另外一種彌補了,根據values()得到的數據再根據ordinal序數獲取具體的枚舉值其實也是一樣的效果。valueOf()方法就是那個根據name獲取具體枚舉值的方法,使用案例:

可選叢老伍姿勢為兩種,一參和兩參,具體看案例。

2. php如何枚舉二維數組的鍵名跟值

$arr = array('a'=>111,'b'=>222,'c'=>333);foreach($arr as $k=>$v){ echo "鍵名 {$k} 的值為 {$v}";}

3. PHP字元串枚舉

代碼示例如下圖供參考:

<?php
$str仔祥岩='abcde';
$a=str_split($str);
perm($a,0,count($a)-1);

functionperm(&$ar,$k,$m){
if($k==$m){
echojoin('',$ar).'<br/>';
}else{
for($i=$k;$i<=$m;$i++){
宴談swap($ar[$k],$ar[$i]);
perm($ar,$k+1,$m);
swap($ar[$k],$ar[$i]);
}
}
}
functionswap(&$a,&$b){
$c=$a;
$a=$b;
念御$b=$c;
}
?>

運行截圖:

4. 枚舉類型enum用法

枚舉類型enum的用法如下文所示:

閱讀全文

與php定義枚舉相關的資料

熱點內容
怎麼打開隱私與應用加密的菜單 瀏覽:416
我的世界伺服器小游戲的地址大全 瀏覽:578
在網路安全中加密安全機制提供了數據的 瀏覽:249
南京前端程序員私活怎麼收費 瀏覽:981
拓撲pdf 瀏覽:440
如何在工行app查我的訂單 瀏覽:214
車壓縮機改電動 瀏覽:83
如何尋找音樂app 瀏覽:831
一加加密的照片 瀏覽:200
阿里雲虛擬主機php 瀏覽:639
不卡點的解壓視頻 瀏覽:391
hex文件下載單片機 瀏覽:873
實現編譯器的自展技術 瀏覽:655
app開發者怎麼突破 瀏覽:418
安卓手機amr格式是什麼 瀏覽:556
找到最小的k個數並有序輸出python 瀏覽:595
thinkphp模板php標簽 瀏覽:165
如何識別毛筆字的app 瀏覽:670
安卓系統怎麼把圖片背景變透明 瀏覽:841
linuxtimercreate 瀏覽:41