導航:首頁 > 編程語言 > 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定義枚舉相關的資料

熱點內容
鋰電池增加密度 瀏覽:657
linux用戶密碼忘記 瀏覽:240
gb壓縮天然氣 瀏覽:633
圖片拼接不壓縮app 瀏覽:668
我的世界如何編程 瀏覽:84
vue反編譯代碼有問題 瀏覽:948
linuxshell字元串連接字元串 瀏覽:51
androidviewpager刷新 瀏覽:438
python編程計算平均分 瀏覽:678
加密數字貨幣市值查詢 瀏覽:692
時尚商圈app怎麼樣 瀏覽:584
stacklesspython教程 瀏覽:138
用命令行禁用135埠 瀏覽:212
linux防火牆編程 瀏覽:627
pdf閱讀器刪除 瀏覽:979
考研人如何緩解壓力 瀏覽:822
買電暖壺哪個app便宜 瀏覽:505
洛克王國忘記伺服器了怎麼辦 瀏覽:782
為什麼cf登錄伺服器沒反應 瀏覽:695
伺服器如何獲取文件列表 瀏覽:674